AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte ResCreator
Thema durchsuchen
Ansicht
Themen-Optionen

ResCreator

Ein Thema von SimplySimon · begonnen am 22. Nov 2011 · letzter Beitrag vom 18. Jan 2012
Antwort Antwort
Benutzerbild von SimplySimon
SimplySimon

Registriert seit: 7. Jun 2011
Ort: NRW
38 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: ResCreator

  Alt 23. Nov 2011, 15:48
Nein, da der TFileOpenDialog die Option PickFolders hat...
Sonst müsste ich den anderen Standard FolderPicker nehmen und der ist längst nicht so elegant und benutzerfreundlich...
Simon
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.340 Beiträge
 
Delphi 12 Athens
 
#2

AW: ResCreator

  Alt 23. Nov 2011, 15:58
OS-abhängig Beide einbauen.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von SimplySimon
SimplySimon

Registriert seit: 7. Jun 2011
Ort: NRW
38 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: ResCreator

  Alt 23. Nov 2011, 16:00
Gute Idee, so wirds gemacht, der Code wird hier mit Sicherheit zu finden sein
Simon
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

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

AW: ResCreator

  Alt 23. Nov 2011, 16:21
OS-abhängig Beide einbauen.
Ich hab mal schnell einen Wrapper zusammengeklatscht:
Delphi-Quellcode:
function SelectDirectory(const Caption: string;
  var Directory: string; Options: TSelectDirExtOpts; 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 := dlg.Options + [fdoPickFolders];
      // Außerdem TSelectDirExtOpts auf TFileDialogOptions abbilden
      Result := dlg.Execute(Parent.Handle);
      if Result then
        Directory := dlg.FileName;
    finally
      dlg.Free;
    end;
  end
  else
  begin
    Result := FileCtrl.SelectDirectory(Caption, '', Directory, Options, Parent);
  end;
end;
Das kann man so aufrufen:
SelectDirectory('Test', Directory, [sdNewFolder, sdShowEdit, sdNewUI], Self);
Uli Gerhardt
  Mit Zitat antworten Zitat
Benutzerbild von SimplySimon
SimplySimon

Registriert seit: 7. Jun 2011
Ort: NRW
38 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: ResCreator

  Alt 23. Nov 2011, 16:36
Vielen dank! Werde es demnächst einbinden
Simon
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

AW: ResCreator

  Alt 23. Nov 2011, 17:03
Und ab welcher Delphiversion läuft das? Ab wann steht TFileOpenDialog und UseLatestCommonDialogs zur Verfügung?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

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

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
Benutzerbild von SimplySimon
SimplySimon

Registriert seit: 7. Jun 2011
Ort: NRW
38 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: ResCreator

  Alt 24. Nov 2011, 20:49
Hallo alle zusammen,

habe mich nochmal hingesetzt und die Version überarbeitet.
Es sind neue Funktionen hinzugekommen, einiges wurde verbessert, außerdem sollte jetzt auch
das Problem mit Windows XP gelöst sein.
Simon
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz