------------ Дoбавленo в 19.59:
для сравнения:
вот так выглядит код кнопки в пакете Windows
#pas
unit hiButton;
interface
uses Windows,Kol,Share,Win;
{$I share.inc}
type
THIButton = class(THIWin)
private
procedure _OnClick(Obj:PObj);
public
_event_onClick:THI_Event;
_prop_Data:TData;
_prop_Caption:string;
_prop_DefaultBtn:boolean;
procedure Init; override;
procedure _work_doCaption(var _Data:TData; Index:word);
end;
implementation
procedure THIButton.Init;
begin
Control := NewButton(FParent,_prop_Caption);
Control.OnClick := _OnClick;
Control.Style := Control.Style or BS_MULTILINE;
inherited;
end;
procedure THIButton._work_doCaption;
begin
Control.Caption := ToString(_Data);
end;
procedure THIButton._OnClick;
begin
_hi_OnEvent_(_event_onClick,_prop_Data);
end;
end.
а вот так в пакете Lazarus под RTCG
#hws
include("WinControl-proc")
func init
addWidget('TButton')
include("WinControl-init")
sys.set_undef_field('Caption')
sys.add_event('onClick', this.props("Data").value)
end
func doCaption(text)
blk.println(this.codename + '.Caption := ', text, ';')
end