Autor Beitrag
TomyN
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 32
Erhaltene Danke: 2

Win10
D5 Std., Turbo-Delphi (w32), Delphi 2010
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 632
Erhaltene Danke: 121

Win 7 32-bit
Delphi 2006/XE
BeitragVerfasst: Do 03.03.11 21:11 
user profile iconTomyN hat folgendes geschrieben Zum zitierten Posting springen:
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:
ausblenden Delphi-Quelltext
1:
2:
  ShowWindow(Mainform.Handle, SW_SHOWNORMAL);
  SetForegroundWindow(Mainform.Handle);
TomyN Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 32
Erhaltene Danke: 2

Win10
D5 Std., Turbo-Delphi (w32), Delphi 2010
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 32
Erhaltene Danke: 2

Win10
D5 Std., Turbo-Delphi (w32), Delphi 2010
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 235


D7
BeitragVerfasst: Sa 26.03.11 20:31 
Warum denn nicht
Application.Restore;
?
Wenn man schon die VCL nutzt...