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

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

GetPropInfo... [D6, Win95/98, Win2k, WinXP]


MetalFan ©   (2004-06-21 12:38:00) 

Доброе время дня, Мастера!
есть код, работающий через сабж, позволяющий учтановить св-во OnKeyPress у любого контрола...
function SetMyKeyPress(aControl: TObject): boolean;
var
 lPropInfo: PPropInfo;
 lMethod : TMethod;
begin
 result := assigned(aControl);
 if result then
 begin
   lPropInfo := GetPropInfo(aControl, 'OnKeyPress');
   result := assigned(lPropInfo) and (lPropInfo^.PropType^^.Kind = tkMethod);
   if result then
   begin
   //ЗДЕСЬ НИЧЕГО НЕ МЕНЯТЬ!
     lMethod.Data := aControl;
     iltLiters: lMethod.Code := @OnMyKeyPress;
     SetMethodProp(aControl, lPropInfo, lMethod);
   end;
 end;
end;
...
procedure OnMyKeyPress(ASelf, ASender: TObject;var Key: Char);
begin
...
end;

а вопрос следующий: как мне запомнить (если он был назначен) предыдущий обработчик, и вызывать его в случае необходимости?
как я подозреваю, надо копать в сторону GetMethodProp...
жду совета)


MetalFan   (2004-06-24 19:04:00) [1]


> Клади.

что-то много у меня кода получилось... не получится в форум выложить)
хотя можно было и по-проще сделать...


GrayFace   (2004-06-22 19:04:00) [2]

Клади.


MetalFan   (2004-06-21 13:35:00) [3]

все... хм) всем спасибо!
вроде разобрался!
кому интересно, пишите - выложу, что нашел!


Наверх

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