![]() |
"Teilmodales" Formular? (VCL)
Guten Morgen,
gibt es so etwas wie ein "teilmodales" Formular? Den Begriff habe ich mir spontan ausgedacht... Ich möchte gerne ein Formular so aufrufen, dass es alle eigenschaften eines modalen Aufrufs hat. Also dass alle "untergeordneten" Formulare komplett gesperrt sind und das "teilmodale" Formular kurz pulsiert, wenn man ein gesperrtes "untergeordnetes" anklickt. Auf der anderen Seite möchte ich aber auch die aufrufende Funktion weiter durchlaufen lassen, als hätte ich es einfach mit "show" angezeigt. Damit möchte ich ein wiederverwendbares Fortschrittsformular umsetzen, das ich einfach aufrufen kann und mich ansonsten nicht um das Disablen und Enablen der "untergeordneten" Formulare kümmern muss. Vielen Dank :) |
AW: "Teilmodales" Formular? (VCL)
So was ähnliches mache ich auch. Allerdings mit einmen anderen Ansatz. Das modale Fenster mit dem Fortschritsbalken bekommt eine Prozedure übergeben (procedure of object). Diese Prozedur läuft dann in einem Thread, den das Form mit Fortschritsbalken erstellt started.
Ist der Thread fertig oder wird durch einen Abbrechenschalter im Form mit Fortschritsbalken terminiert, schließt sich das Fenster wieder. Es besteht aber auch die Möglichkeit mittels
Delphi-Quellcode:
so etwas zu machen. Am besten mal in TForm.Showmodal reinschauen.
WindowList := DisableTaskWindows(0);
... EnableTaskWindows(WindowList); |
AW: "Teilmodales" Formular? (VCL)
Ich habe das mit dem DisableTaskWindows getestet. Die Formulare sind zwar gesperrt und auch die Buttons sind optisch nicht klickbar (Kein Highlight bei Mouseover oder Klick)... aber wenn man während der "Sperrzeit" auf Buttons, Tabs oder sonst was Klickt, werden diese Klicks Zeitverzögert nach dem Freigeben der Fenster trotzdem ausgeführt.
Edit: Ich habe auch versucht einfach das Formular, aus dem heraus der Fortschritts-Dialog aufgerufen wird zu disablen und nachher wieder zu enablen. Aber auch da werden die Klicks, welche ich währenddessen getätigt habe nach dem Enablen nachträglich abgearbeitet :( Das Selbe Ergebnis habe ich mit LockWindowUpdate... |
AW: "Teilmodales" Formular? (VCL)
Versuch es doch mal mit Application.ProcessMessages vor EnableTaskWindows.
|
AW: "Teilmodales" Formular? (VCL)
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:44 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