Mam taki oto problem (pytanie):
Mam na formie:
- OpenPanel : TPanel
- OpenDialog : TOpenDialog
Na panelu 3 przyciski TButton
W OpenDialogu w zdarzeniu onShow i onClose wstawiam taki kod:
procedure TForm1.OpenDialogShow(Sender: TObject);
var
hDlg : DWORD;
r : TRect;
begin
hDlg := GetParent(OpenDialog.Handle);
GetWindowRect(hDlg, r);
SetWindowPos(hDlg, 0, 0, 0, r.Right - r.Left, r.Bottom - r.Top + 55, SWP_NOMOVE or SWP_NOZORDER);
Windows.SetParent(OpenPanel.Handle, hDlg);
with OpenPanel do
begin
Left := 6;
Top := r.Bottom - r.Top - 30;
Width := r.Left + 83;
Height := 50;
Visible := True;
end;
end;
procedure TForm1.OpenDialogClose(Sender: TObject);
begin
OpenPanel.Visible := False;
Windows.SetParent(OpenPanel.Handle, Handle);
end;
Uzyskuję w ten sposób rozszerzony OpenDialog, dokładnie taki jaki potrzebuję.
Problem jest jednak z przyciskami. Chciałbym żeby po wciśnięciu jednego OpenDialog przechodził automatycznie w inne miejsce, do innej lokalizacji na dysku np. C:\Program Files\Java
po naciśnięciu drugiego np. do C:\Documents and Settings\All Users
Czy ktoś wie jak coś takiego zrobić