Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TMethod = record Code, Data: Pointer; end; [D6, Win2k, WinXP]


Matolch ©   (2002-11-26 21:21:00) 

Подскажите, кто знает, как можно получить через значения переменной типа

TMethod = record
Code, Data: Pointer;
end;

строчку "Button1Click", возможно ли это?


Matolch   (2002-11-27 19:04:00) [1]

Точно. Все, ясно, я глуп и не обучен.

> Юрий Зотов © Спасибо!


Юрий Зотов   (2002-11-27 16:58:00) [2]

Потому что у редактируемого компонента нет такого метода. У него есть событие, на обработку которого данный метод назначен, но сам этот метод принадлежит другому объекту (обычно форме).


Matolch   (2002-11-27 16:30:00) [3]

Мне лишь непонятно, почему не получается так:

StrValueC := Component.MethodName(MethodC.Code);


Matolch   (2002-11-27 16:17:00) [4]

Согл.


Юрий Зотов   (2002-11-27 00:14:00) [5]

Если ремить, то вызывается MethodName того объекта, которому принадлежит данный код. А если не ремить, то объекта, находящегося по адресу Data. Так что ничего странного.


Matolch   (2002-11-26 22:44:00) [6]

tkMethod:
begin
MethodC := GetMethodProp(Component, PropName);
MethodS := GetMethodProp(SomeObject, PropName);
if (MethodC.Code <> MethodS.Code) or (MethodC.Data <> MethodS.Data) then
begin
StrValueC := {TObject(MethodC.Data).}MethodName(MethodC.Code);
Add(" " + PropName + " := " + StrValueC + ";");
end;
end;


Если не ремить TObject(MethodC.Data), прекрасно работает.


Matolch   (2002-11-26 22:40:00) [7]


> TTCustomDelphiMaster ©

Прошу прощения, это одно и то же. Пивка!


Matolch   (2002-11-26 22:36:00) [8]


> Юрий Зотов ©

Работает, как раз, то что нужно !
Большое спасибо за совет !
Жаль, что далеко, пивка бы налил !

> TTCustomDelphiMaster ©

Спасибо за внимание, но это не совсем то, что надо. Зачем мне определять уже известное мне заранее (MyProc := Button1Click;) значение, ограничившись TNotEvnt. И тебе пивка !


Matolch   (2002-11-26 22:25:00) [9]

Спасибо, буду пробовать!


TTCustomDelphiMaster   (2002-11-26 21:44:00) [10]

Может такое решение подойдет
var
MyProc: TNotifyEvent;

...
MyProc := Button1Click;
ShowMessage(MethodName(@MyProc));
...


Юрий Зотов   (2002-11-26 21:38:00) [11]

Если это published-метод, то можно:
TObject(Data).MethodName(Code)


Наверх

Титульная страница Поиск, карта сайта Написать письмо