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.