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 Application.processmessages nur für eine Form (https://www.delphipraxis.net/99089-application-processmessages-nur-fuer-eine-form.html)

bernau 6. Sep 2007 17:11


Application.processmessages nur für eine Form
 
Hi,


Ich habe eine Anwendung, in der mehrere Forms gleichzeitig offen sind. Wenn in einer Form ein Schalter gedrückt wird, dann werden in einer Tabelle viele Daten zusammengesucht. Das kann bis zu 20 sekunden dauern. Es soll in der Zeit in keiner anderen Form eine Aktion durchgeführt werden. Was bisher auch nicht ging, da ich kein Application.processmessages in dieser routine verwendet habe. Für den Fortschrit wird eine kleine Form gezeigt, auf de eine Progressbar, den Fortschritt anzeigt und mit "Update" aktualisiert wird.

Nun möchte ich einen Abbruchschalter einbauen. Der lässt sich allerdings nicht anklicken. Ich müsste also application.processmessages einbauen. Dann sind aber auch die anderen Forms anklickbar. Gibt es eine Möglichkeit, in der der Abbruchschalter sich anklicken lässt, aber alles andere nicht anklickbar ist.

Es soll eine schnelle Lösung (im sinne von schnell programmiert) sein. Was ich nicht möchte: Alle offenen Forms mit enabled auf false setzten.


Gerd

christian_u 6. Sep 2007 17:29

Re: Application.processmessages nur für eine Form
 
Setz doch die Forms auf Enabled = False damit sollten auch gleich alle Controllelemente disabled sein

calculon 6. Sep 2007 17:31

Re: Application.processmessages nur für eine Form
 
Wenn du's gescheit machen willst, dann solltest du Threads benutzen. Ich hab' mich ewig davor drücken wollen bis ich dieses verständliche und knappe Tutorial mal durchgearbeitet hab'. Mit den Grundlagen kannst du dein Vorhaben dann ohne "Workarounds" durchführen. Habe ganz das selbe wie du beschrieben hast als allererstes "my1stTThreadApplication.dpr" durchgeführt und es ging sehr gut.

Hoffe ich konnte dir helfen...

Gruß

Calculon
--


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:49 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