Einzelnen Beitrag anzeigen

Benutzerbild von FriFra
FriFra

Registriert seit: 19. Apr 2003
1.291 Beiträge
 
Delphi 2005 Professional
 
#13

Re: Ich finde keine ChildHandles beim TSaveDialog ...

  Alt 20. Aug 2005, 10:10
Zitat von SirThornberry:
@Frifra: Wer sagt dir aber dass, das handle was dir findwindow zurück gibt auch wirklich von deinem dialog ist und nicht das handle eines fensters aus einer anderen anwendung?
Das es tatsächlich "mein" Dialog ist, ist durch die Angabe der Caption im FindWindow sichergestellt, da diese Caption bei mir eindeutig ist
wnd := FindWindow('#32770',PChar(SaveDialog1.Title)); Ich hab aber gerade festgestellt, das es beim Überschreiben der Buttoncaptions Probleme gibt...
Delphi-Quellcode:
var
  wnd: HWND;
  Tmp: string;
  Buffer: array[0..MAX_PATH] of Char;
  n: integer;
begin
  wnd := FindWindow('#32770', PChar(SaveDialog1.Title));
  wnd := GetDlgItem(wnd, 1);
  if wnd <> 0 then
  begin
    GetWindowText(wnd, Buffer, MAX_PATH);
    Tmp := 'Teest';
    if StrPas(Buffer) <> Tmp then
      SetWindowText(wnd, PChar(Tmp));
  end;
Mache ich das ganze im onShow, wird die Caption von Windows sofort wieder überzeichnet... lagere ich das ganze in einen Timer mit kurzem Interval aus, so hat mam bei jeder Dateiauswahl (-> Neuzeichnen des gesamten Dialoges) ein "lustiges Blinkespiel", weil jedesmal wieder kurz die Originalcaption zu sehen ist
Elektronische Bauelemente funktionieren mit Rauch. Kommt der Rauch raus, geht das Bauteil nicht mehr.
  Mit Zitat antworten Zitat