Description:
How to call code via postponed procedures?
Answer:
- Use the standard PostMessage:
Delphiconst
UM_MYMESSAGE = WM_USER + 1;
type
TForm1 = class(TForm)
...
procedure umMyMessage(var Message: TMessage); message UM_MYMESSAGE;
...
procedure <AForm>.<AcxButton>Click(Sender: TObject);
begin
{
<your code>
}
PostMessage(Handle, UM_MYMESSAGE, 0, 0);
end;
procedure TForm1.umMyMessage(var Message: TMessage);
begin
<your code>
end;
- In newer versions of our controls you can use our TdxUIThreadSyncService class:
Delphiuses dxThreading;
procedure <AForm>.<AcxButton>Click(Sender: TObject);
begin
TdxUIThreadSyncService.EnqueueInvokeInUIThread(Sender,
procedure ()
begin
<your code>
end
);
end;