Author: Jonas Bilinkevicius
I have created an extra TSpeedButton on my TOpenDialog and would like to change the
active directory if the user clicks it. If I change the current directory, nothing
happens.
Answer:
1 { ... }
2 hDlg := GetForeGroundWindow;
3 repeat
4 {Sending the path. Try until the dialog has received it}
5 SendDlgItemMessage(hDlg, 1152, WM_SETTEXT, 0, Integer(PChar(sDir)));
6 L := SendDlgItemMessage(hDlg, 1152, WM_GETTEXTLENGTH, 0, 0);
7 Application.ProcessMessages;
8 if Application.Terminated then
9 Exit;
10 until
11 L <> 0;
12 {And now click OK}
13 SendMessage(hDlg, WM_COMMAND, 1 + BN_CLICKED * $10000, GetDlgItem(hDlg, 1));
14 {Clear}
15 SendDlgItemMessage(hDlg, 1152, WM_SETTEXT, 0, Integer(PChar('')));
16 { ... }
|