Einzelnen Beitrag anzeigen

Glados
(Gast)

n/a Beiträge
 
#5

AW: PostMessage mit WndProc oder WMCopyData/Record aus Thread heraus?

  Alt 3. Nov 2017, 14:54
Wie wärs denn so? Ich kapiere noch immer nicht wieso du diese Frage gerade stellst.

Delphi-Quellcode:
type
 TPostMessageData = record
  sString: string;
  sInt: Integer;
 end;
 PPostMessageData = ^TPostMessageData;

Button1Click(Sender: TObject);
var
 CopyData: TPostMessageData;
begin
 CopyData.sString := 'String test';
 CopyData.sInt := 99;

 SendMessage(Handle, WM_COPYDATA, 0, Integer(@CopyData));
end;

procedure TFormReceiver.WMCopyData(var msg: TWMCopyData);
begin
 ShowMessage(PPostMessageData(msg.CopyDataStruct).sString);
end;
So kann ich senden was ich will. Nur frage ich mich: besser das unflexible WndProc-Event nutzen oder das deutlich flexiblere WMCopyData (ersteres mit PostMessage, letzteres mit SendMessage).
Aus einem Thread heraus.

Wenn ich das richtig verstanden habe, blockiert SendMessage den Thread erst einmal. Auch wenn es nicht lange ist. PostMessage, da asynchron, macht das wohl nicht.

Geändert von Glados ( 3. Nov 2017 um 14:56 Uhr)
  Mit Zitat antworten Zitat