Muss es eigentlich direkt eine Postmessage sein?
Habe das in meinem aktuellen Projet für ganze Strings wie folgt gelöst:
in Sendender
Unit:
Delphi-Quellcode:
with Datenaustausch
do
begin
dwData := 0;
cdData := Length(result) + 1;
lpData := result;
end;
SendMessage(LoaderForm.Handle, WM_COPYDATA, Longint(
Handle),
Longint(@Datenaustausch));
und in Empfangender
Unit:
Delphi-Quellcode:
const Nachricht_erhalten = WM_COPYDATA;
...
procedure Nachricht_anzeigen(var MSG: TWMCopyData);message Nachricht_erhalten;
...
procedure TLoaderForm.Nachricht_anzeigen(var MSG: TWMCopyData);
var Datenaustausch: TDatenaustausch;
begin
// Die Anzeige der einzelnen Mitteilungen soll jetzt in mehreren Zeilen
// unter dem Label "Bitte warte, ..." angezeigt werden. Dies soll in
// einer neuen Klasse geschehen, die dynamisch eine bestimmte Anzahl
// an Labels erstellt, diese auf der Form Plaziert und wenn mehr Nachrichten
// erscheinen, als dynamisch erzeugbare Labels auf der Form dargestellt werden
// können, sollen sie chronologisch wieder gelöscht werden.
HilfsLabel.Caption := String(PChar(Msg.CopyDataStruct.lpData));
AnzeigeLabel.Left := round((LoaderForm.Width-HilfsLabel.Width)/2);
AnzeigeLabel.Caption := HilfsLabel.Caption;
Self.Refresh;
sleep(200);
end;
könnte das eventuell helfen?
MfG
BAMatze
PS.: Ist natürlich nicht auf meinem Mist gewachsen sondern von einem Threat hier aus der
DP, leider kenne ich den Namen des ursprünglichen Autors der Antwort nicht, also lasse ich den hier mal weg.
2. Account Sero