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/)
-   -   Form als Infofenster jederzeit anzeigbar und bedienbar. (https://www.delphipraxis.net/180172-form-als-infofenster-jederzeit-anzeigbar-und-bedienbar.html)

Hudel1965 28. Apr 2014 10:08

Form als Infofenster jederzeit anzeigbar und bedienbar.
 
Hallo liebe Community,

Folgendes Problem:

habe ein Formular das als Info-/Debugfenster für meine Anwendung verwendet wird. Dieses Fenster kann aus jedem Formular der Anwendung aufgerufen werden, dies funktioniert auch so weit.

Dabei ergibt sich aber nun folgendes Problem :

Wird dieses Fenster an einer Stelle in der Anwendung geöffnet und wird dann anschließend versucht dieses aus einem modalen Fenster heraus nochmals aufzurufen, wird es zwar nach vorn geholt ist aber nicht bedienbar. Man muss erst das modale Fenster und dann das Infofenster schließen. Wenn man dann aus dem modalen Fenster heraus das Infofenster wieder aufruft ist auch auch bedienbar.

Also lange Rede kurzer Sinn, wie kann ich mein Infofenster so anzeigen lassen, dass es immer bedienbar bleibt.
Ein Close/Open vor jedem Aufruf zeigt keine Wirkung.

Gruß

Hudel

DeddyH 28. Apr 2014 10:16

AW: Form als Infofenster jederzeit anzeigbar und bedienbar.
 
ShowModal deaktiviert alle zuvor geöffneten Fenster, deshalb tritt das geschilderte Verhalten auf. Aus diesem Grund ist mir die Anwendungslogik nicht ganz klar, denn entweder möchte ich ein modales Fenster, das vor der weiteren Arbeit erst geschlossen werden muss, oder ich möchte mehrere Fenster im Wechsel bedienen können, da ist modal eher hinderlich.

Hudel1965 28. Apr 2014 10:44

AW: Form als Infofenster jederzeit anzeigbar und bedienbar.
 
Hallo,

wie gesagt es ist ein Debug-Fenster, in dem ich mir alle möglichen Statusinformationen und Hilfsfunktionen eingebaut habe.
Das Eingabefenster für die normalen Eingaben muss modal sein. Wichtig ist das man das Debug-Fenster jederzeit bedienen kann.
Wie oben beschrieben, das Problem tritt ja nur auf wenn das Debug-Fenster bereits geöffnet war.

Gruß

Hudel

DeddyH 28. Apr 2014 10:52

AW: Form als Infofenster jederzeit anzeigbar und bedienbar.
 
Wie schon gesagt, ShowModal deaktiviert alle bis dahin geöffneten Fenster (DisableTaskWindows-Aufruf). Du könntest aber versuchen, das Infofenster aus dem modalen Fenster heraus mit MSDN-Library durchsuchenEnableWindow wieder zu aktivieren.

Dejan Vu 28. Apr 2014 10:59

AW: Form als Infofenster jederzeit anzeigbar und bedienbar.
 
Wird ein nicht-modales Fenster wirklich deaktiviert, wenn es denn einfach so vor sich hin schwebt? Soweit ich mich erinnere, öffnet man das mit Parent=nil und setzt es entweder knallhart auf 'immer im Vordergrund' oder holt es ggf nach vorne.

Perlsau 28. Apr 2014 11:20

AW: Form als Infofenster jederzeit anzeigbar und bedienbar.
 
Eine weitere Möglichkeit:

Du rufst das Info-Fenster immer nur von der Mainform aus auf und arbeitest mit Messages, wenn du das Info-Fenster aus einem anderen Form heraus aufrufen möchtest. Geht natürlich nicht, wenn du aus Mainform heraus andere Forms modal aufrufst, denn dann sind ja alle anderen Fenster quasi gesperrt und du kannst aus einer modal aufgerufenen Form heraus dein Info-Fenster nicht aufrufen.

Da du dieses Info-Fenster sowieso nur zur Entwicklung benötigst, würde ich das einfach beim Programmstart nicht-modal aufrufen und bei Bedarf einfach in den Vordergrund holen. Für die Release-Version dekativierst du die Möglichkeit, das Info-Fenster aufzurufen.

Hudel1965 28. Apr 2014 11:22

AW: Form als Infofenster jederzeit anzeigbar und bedienbar.
 
@DeddyH, vielen Dank, EnableWindow war die Lösung.

Gruß

Hudel


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