Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Minimize -> Maximize Problem
TomyN - Do 03.03.11 19:21
Titel: Minimize -> Maximize Problem
Hi,
ich habe folgendes Problem (in TurboDelphi).
Ich habe eine ganz normale Form, die der Benutzer auch minimieren kann. Abhängig von internen Geschichten, wird das Fenster über showWindow(self.handle, sw_Restore) einmalig wieder eingeblendet.
Nun das komische: Nachdem das Fenster eingeblendet wurde, funktioniert der 'Minimize' Button nicht mehr, d.h. das Fenster reagiert nicht, die andere Taste ('Maximize' oder 'Restore') funktionieren weiterhin.
Irgendwelche Ideen?
Tomy
elundril - Do 03.03.11 19:25
hast du auch schon mal probiert SW_Show statt SW_Restore zu nehmen? Sollte eigentlich das Fenster auch wieder anzeigen.
lg elundril
jaenicke - Do 03.03.11 19:42
Probleme in dieser Richtung kommen mir bekannt vor. Das liegt daran, das ShowWindow kein echter Ersatz für Show ist.
Ich muss mal schauen wie ich das seinerzeit gelöst habe... Wenn ich zu Hause bin, sitze noch in der Bahn.
Gerd Kayser - Do 03.03.11 21:11
TomyN hat folgendes geschrieben : |
| Nachdem das Fenster eingeblendet wurde, funktioniert der 'Minimize' Button nicht mehr, d.h. das Fenster reagiert nicht, die andere Taste ('Maximize' oder 'Restore') funktionieren weiterhin. |
Statt Restore versuche es einmal so:
Delphi-Quelltext
1: 2:
| ShowWindow(Mainform.Handle, SW_SHOWNORMAL); SetForegroundWindow(Mainform.Handle); |
TomyN - Fr 04.03.11 18:30
Hi,
so, nun hab ich mal ein wenig probiert.
Es funktioniert:
showWindow(application.handle, sw_restore);
Es funktioniert nicht (kein Minimize über die Taste in der Menüleiste mehr möglich)
showWindow(masterForm.handle, sw_show); //Oder sw_restore oder oder...
Aber
getForegroundWindow liefert den Handle von masterForm zurück, nicht den der Application, wobei allerdings
isIconic(application.handle) wieder funktioniert...
Naja, irgendeinen Grund dafür wird's schon geben...
Danke für alle Antworten.
Tomy
jaenicke - Fr 04.03.11 18:42
Ja richtig, du hast ja noch die Version vor dem Fix mit dem unsichtbaren Application-Fenster (bei Delphi 2007). Vorher war dieses Fenster auf der Taskleiste eingeblendet und nicht dein Hauptfenster. Deshalb muss man da sehr genau schauen welche Fenster man da anspricht.
Ich frage mich aber warum du das alles überhaupt so machst, wenn es nur um das Minimieren der Form oder so geht. Ich meine, es gibt doch FormX.WindowState, Application.Restore usw., passt da nichts? :gruebel:
TomyN - Fr 04.03.11 19:15
Hi,
könnte schon sein, dass da irgendeine Variante passt. Hab da am Anfang ein paar Sachen probiert, da hat es nicht so recht funktioniert.
Im Netz hab ich dann was zum 'unsichtbaren' Fenster gefunden, da wurde das mit den Systemfunktionen vorgeschlagen, drum bin ich da erstmal hängen geblieben.
Tomy
FrEaKY - Sa 26.03.11 20:31
Warum denn nicht
Application.Restore;
?
Wenn man schon die VCL nutzt...
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!