Einzelnen Beitrag anzeigen

Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#1

[gelöst] Fensterreihenfolge

  Alt 20. Mai 2010, 09:54
Hallo,

ich habe ein Programm, dessen Hauptfenster beim Start nicht angezeigt wird. Es gibt lediglich ein Symbol im Tray. Ich benutze hierzu Application.ShowMainForm:=False; in der dpr. Es gibt mehrere Fenster, die jeweils separat benutzbar sein sollen und daher mit Show aufgerufen werden.
Wenn ich dann eines der Fenster anzeige, erscheint auch in der Taskleiste ein Eintrag, der beim Schließen aber wieder verschwindet. Zusätzlich gibt es beim Taskleisteneintrag natürlich ein System-Popup-Menü, in dem u.a. der Eintrag "Schließen" enthalten ist. Das ist so auch i.O. Allerdings teilen sich alle Fenster stets nur einen solchen Eintrag in der Taskleiste (Gruppieren ist ausgeschaltet).

Ablauf:
  • Programm startet nur im Tray ohne Fenster
  • Benutzer öffnet Fenster und es erscheint ein Eintrag in der Taskbar
  • Benutzer öffnet weiteres Fenster und es bleibt bei einem Eintrag in der Taskbar
  • Benutzer macht Rechtsklick auf Taskbar und klickt auf "Schließen"
  • mein Programm ruft das Ereignis OnFormCloseQuery mit der entsprechenden Procedure auf
Mein Ziel:
Ich möchte gern, dass immer nur das letzte Fenster (in meinem Beispiel das zweite) geschlossen wird, welches geöffnet wurde. Wie bekomme ich das raus?

Ich habe mehr als 2 Fenster. Öffne ich also Fenster 1, 2, 3, 4, n, dann sollen die in der Reihenfolge n, 4, 3, 2, 1 geschlossen werden. Ich hoffe, ich konnte mein Problem verständlich machen.

Idee:
Ich nehme eine Liste oder ein Array, in dem ich für jedes geöffnete Fenster einen Eintrag mache und dann beim Schließen jeweils die Liste durchgehe. Ich halte das aber für sehr aufwendig und möchte daher eben auch gern wissen, ob jemand eine bessere Idee oder das vielleicht sogar schon einmal gemacht hat.

Gruß & Dank, Alex
Alex Winzer
  Mit Zitat antworten Zitat