Диалог открытия / сохранения файла устанавливает фокус на просмотр списка файлов - PullRequest
2 голосов
/ 04 апреля 2011

можно ли открыть TOpenDialog, TSaveDialog с фокусом, установленным на представление списка файлов вместо поля редактирования имени файла?

Большое спасибо

С уважением

1 Ответ

4 голосов
/ 04 апреля 2011

Вы можете поставить фокус на элементе управления, который вам нравится, но диалог должен быть готов, когда вы это сделаете. Событие OnShow для этого рано. Например, вы можете использовать событие «OnFolderChange» вместе с флагом, чтобы не менять фокус каждый раз, когда папка меняется:

type
  TForm1 = class(TForm)
    Button1: TButton;
    OpenDialog1: TOpenDialog;
    procedure OpenDialog1FolderChange(Sender: TObject);
  private
    FDlgSetFocus: Boolean;

uses
  dlgs;

procedure TForm1.Button1Click(Sender: TObject);
begin
  FDlgSetFocus := False;
  OpenDialog1.Execute;
end;

procedure TForm1.OpenDialog1FolderChange(Sender: TObject);
begin
  if not FDlgSetFocus then
    windows.SetFocus(GetDlgItem(GetParent((Sender as TOpenDialog).Handle), lst2));
  FDlgSetFocus := True;
end;
...