Ich hoffe, du hast nichts gegen unsaubere Lösungen, die funktionieren...
Delphi-Quellcode:
//In der Thread-Funktion:
String(PointerVar) := StringVar; //Referenzzähler erhöhen - unser String darf nicht gelöscht werden!
PointerVar := nil;
PostMessage(Form1.Handle, WM_MYMESSAGE, 0, Integer(StringVar));
//Im Formular:
procedure TForm1.RecvMyMessage(var Message: TMessage);
var Lok: string;
begin
Pointer(Lok) := Pointer(Message.LParam); //Referenzzähler nicht erhöhen, das ist in der Thread-Funktion getan worden
Label1.Caption := Lok;
//Referenzzähler wird automatisch dekrementiert
end;
Diese Technik hat den Vorteil, dass deine Thread-Funktion fast überhaupt nicht aufgehalten wird. Wenn dir Sauberkeit wichtig ist, kannst du auch SendMessage verwenden und brauchst dann die Referenzzählung nicht zu manipulieren.
@Roter Kasten: Dax, wie langweilig. 8)