Um einen TOpenDialog (oder TSaveDialog) in der Details-Ansicht des Windows-Explorers auführen zu lassen, trägt man für dessen OnFolderChange im
OI Folgendes (sinngemäß) ein:
Delphi-Quellcode:
procedure TForm1.OpenDialog1FolderChange(Sender: TObject);
var
H, H2: THandle;
begin
H := FindWindowEx(GetParent(OpenDialog1.Handle), 0,
PChar('SHELLDLL_DefView'), nil);
H2 := FindWindowEx(H, 0, PChar('SysListView32'), nil);
if (H <> 0) and (H2 <> 0) then
begin
SendMessage(H, WM_COMMAND, $702C, 0);
Windows.SetFocus(H2);
end;
end;
Getestet mit D5pro und D7pe unter
Win9x/W2000 und WXP: Funzt!
Roland