Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Form modal öffnen und Routine abarbeiten (https://www.delphipraxis.net/143984-form-modal-oeffnen-und-routine-abarbeiten.html)

SevenOfNine 27. Nov 2009 12:07


Form modal öffnen und Routine abarbeiten
 
Hallo zusammen,

ich möchte ein Formular modal öffnen um dort einen Fortschritt anzuzeigen und einen Abbruch-Button anbieten zu können.
Im OnShow-Event des Formulars rufe ich meine Routine auf, die abgearbeite werden soll und den Fortschritt auf dem Formular anzeigt.

Jetzt ist es natürlich so, dass die Routine abgearbeitet wird, das Forumlar sieht man noch nicht. Erst wenn die Routine fertig ist, erscheint das Forular.

Gibt es einen anderen Event, den man nutzen kann oder wie macht man soetwas.

Ich stehe im Moment leider etwas auf dem Schlauch :gruebel:

Vielleicht kann mir ja jemand einen Tipp geben.

Grüße,
Seven

DeddyH 27. Nov 2009 12:11

Re: Form modal öffnen und Routine abarbeiten
 
Versuch es mal OnActivate.

Bernhard Geyer 27. Nov 2009 12:12

Re: Form modal öffnen und Routine abarbeiten
 
Starte die verarbeitung über einen Timer den du im OnShow startest.

oder sender die eine User-Message im OnShow. Diese kommt erst an wenn das Formular gezeichnet wurde.

SevenOfNine 27. Nov 2009 12:18

Re: Form modal öffnen und Routine abarbeiten
 
Hallo Deddy,

ich vermute aber, dass dann jedesmal, wenn die Form deaktiviert und wieder aktiviert wird, die Routine gestartet wird.


Hallo Bernhard,

an die Timerlösung hatte ich auch schon gedacht, finde ich nicht so elegant, aber ist schnell zu realisieren. Ich mache das aber dann erst einmal mit dem Timer, später vielleicht über eine Message.


Danke für eure Tipps.

Seven

DeddyH 27. Nov 2009 12:20

Re: Form modal öffnen und Routine abarbeiten
 
Das würde IIRC nur innerhalb der eigenen Anwendung gelten, und da das Fenster modal ist... Aber der Timer geht natürlich auch, hab ich selbst auch schon so gemacht.

SevenOfNine 27. Nov 2009 12:28

Re: Form modal öffnen und Routine abarbeiten
 
Hallo Deddy,

ich habe es gerade mal mit deinem Vorschlag probiert.

Es funktioniert!

Dankeschön für eure schnelle Hilfe!

Seven

Uwe Raabe 27. Nov 2009 12:32

Re: Form modal öffnen und Routine abarbeiten
 
Du must auch noch etwas machen, daß der Click auf den Abbruch-Button erkannt wird.

Wenn die Aufgabe der Routine einigermaßen gekapselt ist, benutze ich für solche Sachen eigentlich immer einen TThread.

SevenOfNine 27. Nov 2009 12:45

Re: Form modal öffnen und Routine abarbeiten
 
Hallo Uwe,

hmmm ja soweit bin ich noch nicht, ich hatte zwar schon einmal etwas mit Prozessen gemacht, da müsste ich aber wieder mal in meinen alten Projekten nachsehen :wink:

Ich hatte mir gedacht ich mache das folgendermaßen:

- In der Abarbeitungsschleife der Routine ein ProcessMessages einbauen.
- Im OnClick Event des Abbruch-Buttons ein Flag (globale Variable in der Form) setzen, dass dann in der Routine abgefragt wird und dann bricht die Routine ggf ab mit CloseModal.

... müsste doch gehen?!

Seven


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:53 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz