| Autor |
Beitrag |
TomyN
      
Beiträge: 32
Erhaltene Danke: 2
Win10
D5 Std., Turbo-Delphi (w32), Delphi 2010
|
Verfasst: Do 03.03.11 19:21
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
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: 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
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: 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
      
Beiträge: 632
Erhaltene Danke: 121
Win 7 32-bit
Delphi 2006/XE
|
Verfasst: Do 03.03.11 21:11
|
|
TomyN 
      
Beiträge: 32
Erhaltene Danke: 2
Win10
D5 Std., Turbo-Delphi (w32), Delphi 2010
|
Verfasst: 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
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: 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? 
|
|
TomyN 
      
Beiträge: 32
Erhaltene Danke: 2
Win10
D5 Std., Turbo-Delphi (w32), Delphi 2010
|
Verfasst: 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
      
Beiträge: 235
D7
|
Verfasst: Sa 26.03.11 20:31
Warum denn nicht
Application.Restore;
?
Wenn man schon die VCL nutzt...
|
|