AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi TTask.run und Form.close wie geht das richtig?
Thema durchsuchen
Ansicht
Themen-Optionen

TTask.run und Form.close wie geht das richtig?

Ein Thema von fisipjm · begonnen am 27. Okt 2021 · letzter Beitrag vom 7. Nov 2021
 
fisipjm

Registriert seit: 28. Okt 2013
253 Beiträge
 
#1

TTask.run und Form.close wie geht das richtig?

  Alt 27. Okt 2021, 14:04
Delphi-Version: 10.4 Sydney
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
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz