Thema: ResCreator

Einzelnen Beitrag anzeigen

Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.735 Beiträge
 
Delphi 2007 Professional
 
#14

AW: ResCreator

  Alt 23. Nov 2011, 17:10
Hab's noch ein bisschen überarbeitet:
Delphi-Quellcode:
function SelectDirectory(const Caption: string;
  var Directory: string; Options: TFileDialogOptions; Parent: TWinControl): Boolean;
var
  dlg: TFileOpenDialog;
begin
  if (Win32MajorVersion >= 6) and UseLatestCommonDialogs then
  begin
    dlg := TFileOpenDialog.Create(nil);
    try
      dlg.Title := Caption;
      dlg.FileName := Directory;
      dlg.Options := Options + [fdoPickFolders];
      Result := dlg.Execute(Parent.Handle);
      if Result then
        Directory := dlg.FileName;
    finally
      dlg.Free;
    end;
  end
  else
  begin
    Result := FileCtrl.SelectDirectory(Caption, '', Directory, [sdNewFolder, sdShowEdit, sdShowShares, sdNewUI], Parent);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  UseLatestCommonDialogs := CheckBoxUseLatestCommonDialogs.Checked;
  if SelectDirectory('Test', Directory, [], Self) then
    Label1.Caption := Directory;
end;
Vielleicht kann man die beiden Option-Typen noch besser synchronisieren. Aber z.B. scheint sdShowShares nichts mit fdoShareAware zu tun zu haben, ebensowenig sdValidateDir mit fdoNoValidate, und mehr "Pärchen" habe ich auf die Schnelle nicht gefunden.

Und ab welcher Delphiversion läuft das? Ab wann steht TFileOpenDialog und UseLatestCommonDialogs zur Verfügung?
Ich hab's mit D2007 ausprobiert.

Update: Wie zu erwarten lässt es sich mit Turbo Delphi nicht kompilieren.
Uli Gerhardt

Geändert von uligerhardt (23. Nov 2011 um 18:33 Uhr)
  Mit Zitat antworten Zitat