Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.08.07;
Скачать: CL | DM;

Вниз

каким образом выполнить метод компанента?   Найти похожие ветки 

 
stud ©   (2004-08-12 12:27) [0]

if (newclientf.MethodAddress(d_client.Fields[i].FieldName+"change"))<>nil then
если я нашел, что такой метод существует, как мне его выполнить?


 
Petr V. Abramov ©   (2004-08-12 12:45) [1]

см. TMethod

реализация
 tmyproc = procedure - это 4 байта, адрес точки входа в ф-цию

реализация
 tmyproc = procedure of object - 8 байт, адрес точки входа + указатель на экземпляр класса, тот самый self, который является неявным параметром любого метода

 Типы TMethod и procedure of object можно смело приводить друг к другу.


 
stud ©   (2004-08-12 13:05) [2]

сделал так
type
 texecutemetod = procedure of object;
var
 i : integer;
 event_call : TMethod;
 executemetod : texecutemetod;

...................
event_call.Data:=newclientf.FindComponent(d_client.Fields[i].FieldName);
event_call.Code:=(newclientf.MethodAddress(d_client.Fields[i].FieldName+"change"));
executemetod:=texecutemetod(event_call);
executemetod;
не работает


 
stud ©   (2004-08-12 13:22) [3]

все работает. спасибо



Страницы: 1 вся ветка

Текущий архив: 2005.08.07;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.052 c
14-1121273671
Е-клмн
2005-07-13 20:54
2005.08.07
Я - идиот. Вы? (Да Нет)


3-1119782455
dUM
2005-06-26 14:40
2005.08.07
Поиск нескольких записей с помощью Lookup


1-1121342706
MegaVolt
2005-07-14 16:05
2005.08.07
Подскажите простенькую замену TListView в виртуальном режиме.


14-1121298969
Михаил(Киров)
2005-07-14 03:56
2005.08.07
Администрирование компьютерных клубов


14-1121674710
Juice
2005-07-18 12:18
2005.08.07
Рабочие столы и проводник