Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 4698
Рейтинг: 426
#136: 2009-11-16 15:22:44 ЛС | профиль | цитата
Спасибо, буду знать
карма: 10
0
Ответов: 9906
Рейтинг: 351
#137: 2009-11-16 19:14:21 ЛС | профиль | цитата
Мне всегда было интересно, чего же люди начинают знать после таких объяснений....

Assasin, все на самом деле очень просто.
1) Типа, всякая функция/процедура имеет какое-то количество аргументов (каким макаром они передаются в код - отдельный разговор, и тоже не очень сложный)
2) А методы объекта/класса - это просто те же самые функции/процедуры, НО у них есть ЕЩЕ один явно не показанный аргумент (как правило - первый).
3)Этот агрумент и называется self (у плюшников - this), в котором просто содержится адрес того куска памяти, который особо продвинутые челы называют, скажем, объектом. Если хотят показаться особо умными, начинают называть более изощренными способами (при том же содержании).
4) Ну и все, в общем-то.

карма: 9

0
Разработчик
Ответов: 4698
Рейтинг: 426
#138: 2009-11-17 13:45:07 ЛС | профиль | цитата
Galkov, фактически, ничего нового из вашего сообщения я не узнал, мне вполне стало понятно и из сообщения iarspider-а, что Self: pointer или ссылка на класс в котором происходит данная процедура или функция
карма: 10
0
Ответов: 9906
Рейтинг: 351
#139: 2009-11-19 00:33:16 ЛС | профиль | цитата
Ну извини тогда
Просто я уже совсем теряюсь от уровня знаний современной молодежи. Ощущение такое, как будто изучают химию без знания атомно-молекулярной структуры вещества...

Приводил здесь как-то пример про использование формул для рассчета длины файла... Так это были Мастера (и конкретый чел - далеко не мальчик на форуме KOL, участник разработки)
карма: 9

0
Ответов: 1304
Рейтинг: 405
#140: 2010-05-27 22:29:39 ЛС | профиль | цитата

implementation

procedure doInit;
begin
Texture:=LoadTextureFromFile('Texture.bmp'); //к примеру
end;

procedure THIDGLE_Load._work_doLoad;
begin
if LoadDGLEngineDLL('DGLEngine.dll') then
RegProcedure(PROC_INIT,@doInit);
----------------------------------
В приведённом выше коде происходит загрузка dll, далее dll-ка с помощью "RegProcedure(PROC_INIT,@doInit);" получает адресс процедуры doInit и далее после инициализации движка выполняет эту процедуру. Моя задача вынести функции из doInit "наружу элемента", посредством OnEvent. Вопрос каким способом можно получить OnEvent из "внутренней процедуры" doInit ?
карма: 3

0
Разработчик
Ответов: 26156
Рейтинг: 2127
#141: 2010-05-27 22:45:39 ЛС | профиль | цитата
MAV писал(а):
Вопрос каким способом можно получить OnEvent из "внутренней процедуры" doInit ?

Не передав указатель класса THIDGLE_Load в doInit -- никак
карма: 22

0
Ответов: 1304
Рейтинг: 405
#142: 2010-05-27 22:51:54 ЛС | профиль | цитата
nesco писал(а):
Не передав указатель класса THIDGLE_Load в doInit -- никак

, получается извне в doInit можно запихнуть функции только через глобальные переменные, что совсем выглядит мрачно.

карма: 3

0
Разработчик
Ответов: 26156
Рейтинг: 2127
#143: 2010-05-27 23:04:29 ЛС | профиль | цитата
MAV писал(а):
получается извне в doInit можно запихнуть функции только через глобальные переменные, что совсем выглядит мрачно

Почему через глобальные Можно попробовать вот так



implementation

procedure doInit(user:pointer);
begin
Texture:=LoadTextureFromFile('Texture.bmp'); //к примеру
_hi_onEvent(THIDGLE_Load(user).onEnd);
end;

procedure THIDGLE_Load._work_doLoad;
begin
if LoadDGLEngineDLL('DGLEngine.dll') then
RegProcedure(PROC_INIT,@doInit(self));
----------------------------------
карма: 22

0
Ответов: 1304
Рейтинг: 405
#144: 2010-05-27 23:47:59 ЛС | профиль | цитата
nesco, спасибо попробую применить, сегодня уже нет времени разобраться
карма: 3

0
Разработчик
Ответов: 4698
Рейтинг: 426
#145: 2010-07-07 10:36:43 ЛС | профиль | цитата
nesco, это фича такая что ли? (см. код)
code_19272.txt
карма: 10
0
файлы: 1code_19272.txt [512B] [433]
Разработчик
Ответов: 26156
Рейтинг: 2127
#146: 2010-07-07 10:44:15 ЛС | профиль | цитата
Assasin писал(а):
это фича такая что ли?

А причем тут фича, оно и должно так работать через нижние и верхние точки, или я не понял в чем прикол
карма: 22

0
Ответов: 3349
Рейтинг: 233
#147: 2010-07-07 10:46:10 ЛС | профиль | цитата
nesco, там точки с запятой нету (;)
карма: 1

0
Разработчик
Ответов: 4698
Рейтинг: 426
#148: 2010-07-07 10:46:58 ЛС | профиль | цитата
nesco, тут дело в IC, не даром же я в эту тему написал
карма: 10
0
Разработчик
Ответов: 26156
Рейтинг: 2127
#149: 2010-07-07 10:50:03 ЛС | профиль | цитата
Ivann писал(а):
там точки с запятой нету

Перед последним end-ом, ЕМНИП, допускается не ставить точку с запятой
------------ Дoбавленo в 10.50:
Assasin писал(а):
тут дело в IC

Тебя учить надо, или "как", я что, сам додумывать должен в чем там ваша фича
карма: 22

0
Разработчик
Ответов: 4698
Рейтинг: 426
#150: 2010-07-07 10:52:02 ЛС | профиль | цитата
nesco писал(а):
ЕМНИП

Это как расшифровывается
nesco писал(а):
Тебя учить надо, или "как"


карма: 10
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)