Autor |
Beitrag |
OsCor
      
Beiträge: 55
Win XP, Win 7 (32)
Delphi 2007 Prof, RAD Studio XE2
|
Verfasst: Mi 30.03.11 19:28
Hallo Foristen,
eine ungeschickte Mausbewegung hat vermutlich dazu geführt, dass meine Anwendung nach dem Minimieren zwar minimiert ist, aber auf dem Desktop hinter anderen Fenstern liegt anstatt auf der Taskleiste. Bemerkt habe ich es erst auf Hinweis von Nutzern des Programmes. Ich habe jetzt hier rum gestöbert, die Hilfe nach Eigenschaften und Methoden der Form abgesucht, aber ich finde es nicht.
Was könnte ich versehentlich verändert haben?
Oswald
|
|
Martok
      
Beiträge: 3661
Erhaltene Danke: 604
Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
|
Verfasst: Mi 30.03.11 22:09
Nur das Minimieren des Hauptfensters führt direkt dazu, dass auch die Anwendung minimiert wird.
Jedes andere Fenster wird einzeln minimiert... die anderen Fenster sollten dann noch da sein.
_________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 31.03.11 06:06
Du kannst einfach in OnResize deines zweiten Fensters diesen Code schreiben: Delphi-Quelltext 1: 2: 3: 4: 5:
| if (WindowState = wsMinimized) and not IsIconic(Application.Handle) then begin WindowState := wsNormal; Application.Minimize; end; | Dadurch wird das Minimieren wieder rückgängig gemacht und stattdessen die Anwendung komplett minimiert.
Der Code funktioniert aber bis mindestens Delphi 2007 nicht. Getestet habe ich mit XE. Der Grund ist, dass in den älteren Versionen WindowState noch den alten Wert hatte, erst bei XE ist er dann bereits auf wsMinimized. Bei älteren Delphiversionen wird das also wohl nur gehen, indem die entsprechenden Windows Botschaften selbst abgefangen werden.
Eine Alternative wäre das Minimieren nur beim Hauptfenster zuzulassen wie es viele Programme tun.
Eine weitere Alternative wäre die weiteren Fenster ebenfalls als Anwendungsfenster in die Taskleiste zu legen, dann hast du da einfach mehrere Einträge und das Minimieren klappt auch normal.
|
|
OsCor 
      
Beiträge: 55
Win XP, Win 7 (32)
Delphi 2007 Prof, RAD Studio XE2
|
Verfasst: Mo 18.04.11 10:50
Sorry, war gesundheitlich außer Gefecht.
Offensichtlich habe ich mein Problem nicht richtig beschrieben.
Beim Klick auf den Minimieren-Button des Hauptfensters soll die Anwendung nur noch als Icon in der Taskleiste sichtbar sein. Das war vorher so; jetzt liegt eben ein blauer Balken auf dem Desktop. Da ich zu diesem Bereich keinen Code geschrieben hatte, kann ich mir die Geschichte nur so erklären, dass irgendeine Einstellung des Formulars verändert wurde, die ich partout nicht finde.
Oswald
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 18.04.11 10:57
Dann ist dein Hauptfenster nicht mehr dein Hauptfenster.
// EDIT:
Mal ganz einfach: Wie sieht denn der Projektquelltext aus (ab begin in der .dpr) und wie heißt das betreffende Formular?
|
|
OsCor 
      
Beiträge: 55
Win XP, Win 7 (32)
Delphi 2007 Prof, RAD Studio XE2
|
Verfasst: Mo 18.04.11 11:26
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| program DTWV2PR;
uses Forms, DTWV2HF in 'DTWV2HF.pas' , Unit3 in 'Unit3.pas' , xlabk in 'xlabk.pas' ;
{$R *.res}
begin Application.Initialize; Application.MainFormOnTaskbar := True; Application.Title := 'Der tägliche Wahnsinn'; Application.CreateForm(TForm1, Form1); Application.CreateForm(TForm3, Form3); Application.CreateForm(TForm4, Form4); Application.Run; end. |
Ist es das, was du sehen willst?
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 18.04.11 11:37
Und Form1 ist das Formular, um das es hier geht? Denn das ist ja hier wie man sieht das Hauptformular.
Dann weiß ich auch nicht woran das liegt. Aber da es kein Standardverhalten ist, musst du da etwas im Code machen.
|
|
OsCor 
      
Beiträge: 55
Win XP, Win 7 (32)
Delphi 2007 Prof, RAD Studio XE2
|
Verfasst: Mo 18.04.11 12:07
jaenicke hat folgendes geschrieben : | Aber da es kein Standardverhalten ist, musst du da etwas im Code machen. |
Tja, da ich, wie geschrieben, nichts bewußt codiert habe… Ich habe nochmal alle Einstellungen des Formulars einzeln in der Hilfe durchgeschaut. Da ist definitiv nichts zu finden.
Welches englischsprachige Forum wäre denn evtl. noch Anlaufpunkt?
Oswald
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 18.04.11 12:35
Ich kann dir nur anbieten mir das Projekt selbst anzuschauen, wenn du den Quelltext posten möchtest oder mir per PN schickst.
|
|
OsCor 
      
Beiträge: 55
Win XP, Win 7 (32)
Delphi 2007 Prof, RAD Studio XE2
|
Verfasst: Mo 18.04.11 14:48
Ich traue mich kaum, es zu schreiben, aber das Problem hat eine sehr simple Lösung:
Wenn man im Objektinspektor die Eigenschaft Visible des Hauptformulars auf True setzt, hat das zur Folge, dass das Icon nach dem Minimieren auf dem Desktop bleibt. Setzt man die Eigenschaft auf False: Voilà, das Icon ist wieder in der Taskbar und nicht mehr auf dem Desktop.
Die Betriebsblindheit bestand darin, dass ich es nicht für möglich gehalten habe, dass diese Eigenschaft so gesetzt sein müsste…
Den Mitdenkern vielen Dank. Sebastian, bloss gut, dass ich da selber drauf gekommen bin
Oswald
|
|
|