Hallo,
ich habe ein Problem mit dem Zugriff auf die Main
Unit aus einem Thread. Soweit ich verstanden habe, kann ich auf visuelle Komponenten nur über synchronize zugreifen. Leider gelingt es mir aber nicht auf ein Label in der Main
unit zuzugreifen.
Mein Versuchscode ( nur der Thread) lautet folgendermaßen:
Delphi-Quellcode:
unit meinthread;
interface
uses
Classes, sysutils, windows;
type
test =
class(TThread)
private
{ Private-Deklarationen }
j: integer;
protected
procedure Execute;
override;
procedure getresult;
public
constructor create;
virtual;
end;
implementation
procedure test.GetResult;
begin
Form1.label1:='Test';
end;
procedure test.Execute;
begin
{ Thread-Code hier einfügen }
sleep(1000);
windows.beep(2000,50);
Synchronize(Getresult);
end;
constructor test.create;
begin
inherited create(true); // CreateSuspended = true
freeOnTerminate := true;
end;
end.
Die Procedure Test.Result findet den label1 auf Form1 nicht.
Was mache ich falsch?
Euer Max2621