![]() |
Ich finde keine ChildHandles beim TSaveDialog ...
Ich versuche nun schon eine ganze weile irgendwie an das Handle das Filename-Edit des Savedialogs zu kommen...
Ich habe es mit dieser unit versucht: ![]() wlist.EnumChildWindows(SaveDialog1.Handle); liefert jedoch immer nichts... es werden einfach keine Childs gefunden... P.S.: Ich hab auch schon div. andere Beispielcodes getestet, alle mit dem gleichen Effekt :gruebel: |
Re: Ich finde keine ChildHandles beim TSaveDialog ...
Such dir mit einem Tool die ID des Edits und dann benutzt du
![]() |
Re: Ich finde keine ChildHandles beim TSaveDialog ...
Zitat:
|
Re: Ich finde keine ChildHandles beim TSaveDialog ...
:oops: jetzt hab ich die ID doch mit XSpy gefunden :) ...
|
Re: Ich finde keine ChildHandles beim TSaveDialog ...
:x Zu früh gefreut...
Das Handle bekomme ich trotz ItemId nicht :roll:
Delphi-Quellcode:
wnd := GetDlgItem(SaveDialog1.Handle, 1148);
if wnd <> 0 then begin showmessage(IntToStr(wnd)); end; |
Re: Ich finde keine ChildHandles beim TSaveDialog ...
hast du schon mal geschaut welchen Wert das Handle deines SaveDialogs hat? Ich hab mal das ganze mit dem Opendialog probieren wollen und musste feststellen das, das Handle vom Dialog 0 war.
Es kommt also darauf an, zu welchem Zeitpunkt du das ganze versuchst zu performane. Wenn du es zum Beispiel im OnShow des Dialogs machst ist ein Handle vorhanden, wenn der Dialog jedoch nicht mehr eingeblendet ist, so ist auch das handle wieder 0. |
Re: Ich finde keine ChildHandles beim TSaveDialog ...
Mein SaveDialog hat ein Handle, denn ich mache das ganze OnSelectionChange ;)
|
Re: Ich finde keine ChildHandles beim TSaveDialog ...
habs grad beim probieren mitbekommen das es irgendwie bei mir auch nicht geht. Was mir aber auch aufgefallen ist - das handle von Dialog.Handle ist nicht das gleiche Handle wie das des sichtbaren Dialog-Fensters.
|
Re: Ich finde keine ChildHandles beim TSaveDialog ...
Hallo,
Mein WinSpy liefert folgenden Code und findet das File Name Edit:
Delphi-Quellcode:
var
wnd: HWND; begin wnd := FindWindow('#32770',nil); // oder was auch immer... wnd := FindWindowEx(wnd, 0, 'ComboBoxEx32', nil); wnd := FindWindowEx(wnd, 0, 'ComboBox', nil); wnd := FindWindowEx(wnd, 0, 'Edit', nil); if wnd <> 0 then begin // ....gefunden! end; end. Edit: Ansonsten mal hier schauen: ![]() |
Re: Ich finde keine ChildHandles beim TSaveDialog ...
@toms: Zum problem wird es nur wenn es noch einen weiteren Dialog gibt, denn dann ist nicht mehr sicher das man auch den eigenen findet. Daher finde ich den Lösungsversuch über das Handle des Dialogs zu gehen bedeutend besser.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:43 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-2025 by Thomas Breitkreuz