Вверх ↑
Ответов: 5227
Рейтинг: 587
#1: 2017-11-23 04:54:15 ЛС | профиль | цитата
3042, уже давно не практикую кодированием (нет времени), ну примерно так...

Add(MainForm,2953706,175,119)
{
}
Add(Edit,13545452,245,119)
{
Left=75
Top=145
Width=215
Point(PHandle)
}
Add(InlineCode,7379325,252,175)
{
@Hint=#10:SRData 2.0|
DataPoints=#5:dtPH_|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|21:uses kol,Share,Debug;|0:|5:type |53: TOldOnDestroy = procedure (Sender: PObj) of object;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|24: fControl: PControl;|34: fOldOnDestroy: TOldOnDestroy;|40: procedure _OnDestroy(Sender: PObj);|10: public |21: dtPH_: THI_Event;|19: procedure Init;|23: constructor Create;|5: end;|0:|14:implementation|0:|27:procedure THiAsmClass.Init;|5:begin|42: fControl := nil; fOldOnDestroy := nil; |36: fControl := ReadControl(dtPH_,'');|75: if Assigned(fControl.OnDestroy) then fOldOnDestroy := fControl.OnDestroy;|35: fControl.OnDestroy := _OnDestroy;|4:end;|0:|31:constructor THiAsmClass.Create;|5:begin|19: inherited Create;|17: InitAdd(Init); |4:end;|0:|33:procedure THiAsmClass._OnDestroy;|5:begin|96: _debug('Тут собственно и должен выполнятся код, причём Sender и будет указателем на контрол');|34: //_debug(PControl(Sender).Text);|55: // ну собственно и вызываем родной метод если он есть|57: if Assigned(fOldOnDestroy) then fOldOnDestroy(Sender); |4:end;|0:|4:end.|
link(dtPH_,13545452:PHandle,[])
}


в hiEdit сделай сам метод:

private
...
procedure _OnDestroy(Sender: PObj);
...

procedure THIEdit.Init;
begin
...
inherited;
Control.Perform(em_LimitText,_prop_MaxLenField, 0);
Control.OnChange := _OnChange;
Control.OnDestroy := _OnDestroy; // <-
...
end;

ну и сам метод типа

procedure THIEdit._OnDestroy;
begin
_debug ('это старый метод события перед деструктором');
end;
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
1
Голосовали:3042