Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Form ansprechen während einer Bearbeitung (https://www.delphipraxis.net/162192-form-ansprechen-waehrend-einer-bearbeitung.html)

Jens01 11. Aug 2011 13:53

Form ansprechen während einer Bearbeitung
 
Ich möchte ein Fenster haben, wie Delphi beim Compilieren.

Ich habe eine Berechnung, die ca. 2 Minuten dauert, dabei soll ein Fenster den Status mit einem Progressbar anzeigen, ein Button soll zum Abbrechen sein und das Fenster soll verschiebbar sein.
Das Fenster, welches ich vor der Berechnung aufrufe, friert aber ein. Erst nach der Berechnung ist es wieder ansprechbar.

Wie kann ich soetwas gestalten?

-187- 11. Aug 2011 13:56

AW: Form ansprechen während einer Bearbeitung
 
Du musst die Berechnungsfunktion in ein extra Thread auslagern.

Alternativ, als schlechten Turn-Around, könntest du Application.ProcessMessages benutzen (In einer Schleife zb). Zeig doch mal deine Berechnungsfunktion.

Jens01 11. Aug 2011 14:22

AW: Form ansprechen während einer Bearbeitung
 
Zitat:

Zeig doch mal deine Berechnungsfunktion.
Würde ich gerne zeigen, wenn es nicht etwas umständlich wäre.
Aber eigentlich ist es eine for-Schleife mit 4-5 Verzweigungen in Unterberechnungen die jeweils ca 100ms dauern.

Gesucht habe ich wohl dies "Application.ProcessMessages", was ich schon mal aufgegriffen hatte, aber im Lauf der Zeit vergessen habe.
Das mit den Thread hatte ich mir schon überlegt, aber ich habe bis jetzt damit noch nicht gearbeitet. Vielleich guck ich mir das jetzt mal an.

Problem ist aber auch, dass während der Berechnungen nur dieser Abbuch-Button betätigt werden darf. Andere Eingaben dürfen nicht getätigt werden, da das sonst in die Berechnung eingehen könnte.

himitsu 11. Aug 2011 14:36

AW: Form ansprechen während einer Bearbeitung
 
Zitat:

Zitat von Jens01 (Beitrag 1116265)
Andere Eingaben dürfen nicht getätigt werden, da das sonst in die Berechnung eingehen könnte.

Alles außer dem Button disablen.

Jens01 11. Aug 2011 14:42

AW: Form ansprechen während einer Bearbeitung
 
Zitat:

Alles außer dem Button disablen.
Den Gedankengang hatte ich eben auch. Dann muß aber jedes Controll einzeln gedisabled werden. Ganz schön viel.
Hatte eben gerade versucht ganz simpel das Fenster zu disablen, aber dann friert es ein.

DeddyH 11. Aug 2011 14:47

AW: Form ansprechen während einer Bearbeitung
 
Pack die Controls außer dem Abbrechen-Button auf ein Panel und disable dann das.

BUG 11. Aug 2011 14:54

AW: Form ansprechen während einer Bearbeitung
 
Zitat:

Zitat von Jens01 (Beitrag 1116265)
Andere Eingaben dürfen nicht getätigt werden, da das sonst in die Berechnung eingehen könnte.

Soll das heißen du liest innerhalb der Schleifen Daten aus der GUI (mit String-Konverierung)?
Es würde mich wundern, wenn deine Bearbeitung nicht schneller werden würde, wenn du das stärker trennst.

DeddyH 11. Aug 2011 14:56

AW: Form ansprechen während einer Bearbeitung
 
Das hoffe ich doch nicht, aber irgendwelche Schaltflächen könnten schon dazu führen, dass man plötzlich mit falschen Werten rechnet.

Jens01 11. Aug 2011 15:06

AW: Form ansprechen während einer Bearbeitung
 
Zitat:

Soll das heißen du liest innerhalb der Schleifen Daten aus der GUI (mit String-Konverierung)?
Nein, aber bei (z.B.) einem Edit wird nach der Eingabe das Datum sofort in das Feld/Variable geschrieben, die dann während der Berechnung angesprochen werden könnte.

himitsu 11. Aug 2011 15:17

AW: Form ansprechen während einer Bearbeitung
 
Dann übergib die Werte der GUI nur in den Buttons, welche die aktion starten.
Ist dieser Button dann gesperrt, dann hat eine Änderung des GUI--Inhalts keine Auswirkung, bzw. nutze für die Berechnung jeweils eine Kopie der Werte.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:51 Uhr.
Seite 1 von 3  1 23      

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