AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

"Teilmodales" Formular? (VCL)

Ein Thema von Getox · begonnen am 26. Apr 2022 · letzter Beitrag vom 26. Apr 2022
Antwort Antwort
Getox

Registriert seit: 28. Dez 2012
155 Beiträge
 
Delphi XE3 Professional
 
#1

"Teilmodales" Formular? (VCL)

  Alt 26. Apr 2022, 09:35
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
Ist ein Nilpferd ein Pferd, das nicht vorhanden ist?
  Mit Zitat antworten Zitat
BerndS

Registriert seit: 8. Mär 2006
Ort: Jüterbog
491 Beiträge
 
Delphi 12 Athens
 
#2

AW: "Teilmodales" Formular? (VCL)

  Alt 26. Apr 2022, 10:01
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:
  WindowList := DisableTaskWindows(0);
  ...
  EnableTaskWindows(WindowList);
so etwas zu machen. Am besten mal in TForm.Showmodal reinschauen.
  Mit Zitat antworten Zitat
Getox

Registriert seit: 28. Dez 2012
155 Beiträge
 
Delphi XE3 Professional
 
#3

AW: "Teilmodales" Formular? (VCL)

  Alt 26. Apr 2022, 14:12
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...
Ist ein Nilpferd ein Pferd, das nicht vorhanden ist?

Geändert von Getox (26. Apr 2022 um 14:35 Uhr)
  Mit Zitat antworten Zitat
BerndS

Registriert seit: 8. Mär 2006
Ort: Jüterbog
491 Beiträge
 
Delphi 12 Athens
 
#4

AW: "Teilmodales" Formular? (VCL)

  Alt 26. Apr 2022, 14:40
Versuch es doch mal mit Application.ProcessMessages vor EnableTaskWindows.
  Mit Zitat antworten Zitat
Getox

Registriert seit: 28. Dez 2012
155 Beiträge
 
Delphi XE3 Professional
 
#5

AW: "Teilmodales" Formular? (VCL)

  Alt 26. Apr 2022, 14:47
Versuch es doch mal mit Application.ProcessMessages vor EnableTaskWindows.
Das funktioniert tatsächlich! Vielen Dank!
Ist ein Nilpferd ein Pferd, das nicht vorhanden ist?
  Mit Zitat antworten Zitat
Antwort Antwort


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 22:38 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