ich habe einen Thread (
nonVCL), da erzeuge ich ein objekt und weise den events die proceduren aus dem formular zu, das ich mit hilfe des Parameters übergeben habe.
Delphi-Quellcode:
function ThreadFunction(Parameter : Pointer) : Integer;
var funktion123: Tfunktion123;
Form1 : TForm;
begin
Form1 := Parameter.Form;
_funktion123 := Tfunktion123.Create(nil);
_function123.OnEreignis1 := Form1.Ereignis1;
_function123.OnEreignis2 := Form1.Ereignis2;
_function123.OnEreignis3 := Form1.Ereignis3;
_function123.Start;
end;
funktioniert alles soweit gut. nur wenn ich dann auf den Canvas vom Label zugreif bekomm ich die Fehlermeldung: Leinwand/Bild erlaubt kein Zeichnen
Delphi-Quellcode:
procedure TForm.Ereignis1(Sender: TObjekt; Item: String);
begin
Label1.Caption := MinimizeName(Item, Label1.Canvas, 300);
end;
denk mal, es liegt daran, dass ich den zugriff nicht synchronisiert hab.
wie kann ich das verhindern bzw. wie muss ich das ganze aufbauen, damit sowas nicht auftreten kann?
vielen dank schonmal