AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Die Z-Ordnung innerhalb eines Programms feststellen
Thema durchsuchen
Ansicht
Themen-Optionen

Die Z-Ordnung innerhalb eines Programms feststellen

Ein Thema von Popov · begonnen am 17. Okt 2008 · letzter Beitrag vom 18. Okt 2008
Antwort Antwort
Popov
(Gast)

n/a Beiträge
 
#1

Die Z-Ordnung innerhalb eines Programms feststellen

  Alt 17. Okt 2008, 18:09
Ich hab ein Programm das aus vielen Fenster besteht und sie alle sind während der Ausführung eingeblendet. Wird ein Fenster angetippt, kommt es in den Vordergrund. Soweit alles klar. Und weil die Reihenfolge nicht unwichtig ist, will ich sie beim Beenden des Programms speichern und später wiederherstellen.

Die Handles der Fenster habe ich, jetzt fehlt mir die Z-Ordnung. Ich weiß nur von der API Variante, allerdings würde ich gerne bei dem Programm auf die API-Funktionen verzichten. Kennt einer eine Methode wie man die Z-Ordnung intern ermitteln kann? Es geht hier nur um die Fenster der Applikation, nicht sonstiger Komponenten.
  Mit Zitat antworten Zitat
SimStar001

Registriert seit: 18. Jan 2008
594 Beiträge
 
#2

Re: Die Z-Ordnung innerhalb eines Programms feststellen

  Alt 17. Okt 2008, 18:28
und wenn du über FindWindowEx gehst, und mit dem obersten Fenster anfängst? Ich glaube dann solltest du die gewünschte Reiehnfolge auslesen können anhand der FensterHandles?
Marco Tröger
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#3

Re: Die Z-Ordnung innerhalb eines Programms feststellen

  Alt 18. Okt 2008, 09:08
Warum möchtest du nicht die API Variante nehmen? z.B GetWindow
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Die Z-Ordnung innerhalb eines Programms feststellen

  Alt 18. Okt 2008, 09:30
Warum sollte er die Api-Variante welche nicht objektorienter ist in seinem VCL-Projekt was in aller Regel objectorientiert ist verwenden wenn es eventuell auch eine Lösung mit der VCL gibt?
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#5

Re: Die Z-Ordnung innerhalb eines Programms feststellen

  Alt 18. Okt 2008, 13:15
Zitat von toms:
Warum möchtest du nicht die API Variante nehmen? z.B GetWindow
Die Fenster und deren Handles habe ich, nur fehlt mir die Reihenfolge. Ich dachte vielleicht gibt es intern einen Manager in dem man die Reihenfolge ermitteln kann.

Na gut, wenn es nicht anders geht, dann werde ich es über API machen müssen.


Dann frage ich mal bei der Gelegenheit: wie kann ich mit GetWindow die Fenster, und nur die Form-Fenster, meiner Anwendung auflisten? Bei

Delphi-Quellcode:
  h := GetWindow(Application.Handle, GW_HWNDFIRST);
  while h > 0 do
  begin
    h := GetWindow(h, GW_HWNDNEXT);
  end;
kommt ziemlich viel zurück. Und IsWindow filtert auch nicht viel.
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#6

Re: Die Z-Ordnung innerhalb eines Programms feststellen

  Alt 18. Okt 2008, 17:53
Hallo,

eine Liste der Forms?:
Delphi-Quellcode:
var s : String;
    z : Integer;
begin
for z := 0 to Screen.FormCount -1 do
  begin
    s := s + Screen.Forms[z].Name+#13#10;
  end;
  showmessage(s);
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#7

Re: Die Z-Ordnung innerhalb eines Programms feststellen

  Alt 18. Okt 2008, 20:16
Lannes, du bist cool. Genau das habe ich gesucht. Ich dachte mir, daß es einen internen Manager geben muß. Screen.Forms liefert die Formulare mit der korrekten Z-Ordnung.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz