![]() |
Geöffnete Forms auslesen/ermitteln?
Hallo,
eine kleine Frage bezüglich geöffneter Fenster eines Programmes. Und zwar würde ich gerne folgende Dinge auslesen können (jeweils immer nur vom eigenen Programm): -> Geöffnete Forms -> Form, das ganz oben liegt Ich weiß allerdings weder ob das überhaupt möglich ist, noch wie ich das bewerkstelligen sollte... :( Danke, MCXSC |
Re: Geöffnete Forms auslesen/ermitteln?
zB mit:
Delphi-Quellcode:
Die 1. Form, die Du bekommst ist im Vordergrund (sofern Deine Anwendung den Fokus hat).
var i:Integer;
begin Memo1.Lines.Clear; For i:=0 to Screen.FormCount-1 do Memo1.Lines.Add(Screen.Forms[i].Caption{oder .Name}); |
Re: Geöffnete Forms auslesen/ermitteln?
Super, danke!
Gibt es auch noch die Möglichkeit zu testen, ob irgendein Dialog (Öffnen, Speichern, MessageDlg, ...) geöffnet ist? |
Re: Geöffnete Forms auslesen/ermitteln?
Ob ein Dialogfeld geöffnet ist weißt Du ja, denn
Delphi-Quellcode:
ShowMessage('Vorm Dialog');
// hier wird gewartet, bis Du das Meldungsfenster weg klickst // Dann kommt das OpenDialog OpenDialog1.Ecxecute; // und wartet wieder, bis Du es weg klickst // Und nochma ShowMessage('Nach dem Dialog'); // Du weißt bescheid ;) |
Re: Geöffnete Forms auslesen/ermitteln?
Ja, das weiß ich ja. ;)
Ich suche aber eher was nach dem Motto:
Delphi-Quellcode:
:)
if IrgendeinDialogFenster then
|
Re: Geöffnete Forms auslesen/ermitteln?
Moin, Moin,
mit
Delphi-Quellcode:
werden alle Formulare und Komponenten deiner Anwendung "durchlaufen".
with Application do
for i:=0 to ComponentCount-1 do if Components[i] is TForm then begin // .. // prüfe, welches Form gefunden wurde // und nutze das Ergebnis for j:=0 to Components[i].ComponentCount-1 do if Components[i].Components[j] is ~~ then // < Typ der gesuchten Komponente einsetzen // .. // prüfe, welche Komponente gefunden wurde // und nutze das Ergebnis end; Vielleicht hilft es dir. |
Re: Geöffnete Forms auslesen/ermitteln?
Viele Dialoge sind Systemdialoge und nicht in der Komponenten- btw. Forms-Kollektion enthalten. Soweit ich mich erinnere, sind das Fenster mit dem Klassennamen '#32768'. Du könntest also schauen, ob ein Child-Fenster deiner Anwendung diesen Klassennamen besitzt. Dazu musst du die Kindfenster mit
![]() |
Re: Geöffnete Forms auslesen/ermitteln?
Hm, das greift aber nicht auf OpenXXXDialog/MessageDlg/etc. zu?
|
Re: Geöffnete Forms auslesen/ermitteln?
alzaimar hat natürlich Recht, also einfach ausprobieren.
Aber selbst wenn es dir im Augenblick nicht hilft, in einem anderen Fall kannst du es bestimmt noch mal verwenden. |
Re: Geöffnete Forms auslesen/ermitteln?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz