Hi mal wieder in die Runde, in letzter Zeit spam ich das Forum ganz schön zu
, aber die Hilfe ist einfach immer spitze
Folgendes "Problem".
Ich habe eine Form als "Muster Form" die Ruft optisch immer in gleicher Optik aufbereitete aber unterschiedliche Daten ab.
Auf der Form liegen komponenten zum REST Abruf und eine TAniIndicator komponente. ich hab im Grunde aktuell 2 Events, show und close. Die hab ich folgendermaßen aufgebaut und die Funktionieren auch im normalen Programmablauf.
Delphi-Quellcode:
procedure TMainForm.FormShow(Sender: TObject);
begin
StringGridBindSourceDB1.Visible:=false;
AniIndicator1.Position.X:= width/2 - AniIndicator1.Width;
AniIndicator1.Position.Y:= Height/2 - AniIndicator1.Height;
AniIndicator1.Enabled:=true;
TTask.run(
procedure
begin
LaaaaaangsameRESTAbfrageMachen;
tthread.Synchronize(nil,procedure
begin
StringGridBindSourceDB1.Visible := true;
AniIndicator1.Enabled:=false;
AniIndicator1.Visible:=false;
end);
end);
end;
procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := TCloseAction.caFree;
end;
Ich bin komplett neu im Thema parallele Programmierung und hab das Gefühl da gibt's noch sehr viel für mich zu lernen. Mein Problem ist, wenn der Benutzer ungeduldig ist und die Form schon während des Ladevorgangs Schließt, dann crasht mir die Form komplett. Ich bekomme erst mal eine AccessViolation und danach ist die Form aber weiterhin im Objektinspektor verfübar anstatt sauber freigegeben. Ich geh mal davon aus ich muss das irgendwie im Thread abfangen, aber ich habe absolut keinen Ansatz wie.
Vielen Dank schon mal