Jak włączyć Overload dla SelectDirectory

Jak włączyć Overload dla SelectDirectory
Pegii
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 54
0

Gdy chce wywołać opcja funkcji SelectDirectory takie jak sdShowEdit lub sdNewFolder, pojawia mi się błąd:
[DCC Error] Unit1.pas(218): E2250 There is no overloaded version of 'SelectDirectory' that can be called with these arguments

Odpowiedzią pomocy Delphi jest:

http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/devcommon/cm_no_overload_xml.html

Tylko jak włączyć overload tej funkcji?

olesio
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
  • Postów: 4191
0

Jeżeli chcesz pokazać okienko do wyboru katalogu to polecam zapoznać się z tym gotowcem: Dialog do wyboru katalogu jednak pisałem go dawno i wtedy jeszcze nie chciałem zgłębiąć WinAPI dopiero od czasu napisania kilku programów w WinAPI korzystam z tego modułu, który dołączyłem do tego posta. Jest tam prosta w użyciu funkcja FolderBrowseDialog. A kod możesz sobie dostosować do swoich potrzeb. Powinno to Tobie również pomóć w ogarnięciu Twojego problemu.

Pegii
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 54
0

Cimak masz rację nie wiem co to jest overload poza tym co napisałem wyżej, dla mnie to wygląda na rozszerzenie właściwości funkcji.
Kod:

Kopiuj
SelectDirectory('Wybierz katalog do zapisania plikudanych',
       'D:\', SelectedDir,sdShowEdit,sdNewFolder) 

Gdy usunę sdShowEdit i sdNewFolder funkcja działa prawidłowo. Jeśli te opcje są wyrzuca błąd E2250. Nawet gdy próbuje użyć kodu z przykładu tj.

Kopiuj
 
var
  Directory: String;
  Options: TSelectDirOpt;
begin
  Directory:= 'C:\Windows';
  if SelectDirectory(Directory, Options, 0) then
    //zdarzenie które wykona się po naciśnięciu przycisku OK
    ShowMessage('Wybrano folder: ' + Directory);
  else
    //zdarzenie które wykona się po naciśnięciu przycisku Anuluj
    ShowMessage('Nie wybrano żadnego katalogu.');
end;

Także wyświetla błąd E2250

Opi
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1034
0

Trochę Ci się pomyliło, bo pomieszałeś klasę(?) z parametrami funkcji.

Zamiast:
SelectDirectory('Wybierz katalog', 'C:\', SelectedDir, sdShowEdit, sdNewFolder)

zastosuj:
SelectDirectory('Wybierz katalog', 'C:\', SelectedDir, [sdShowEdit, sdNewFolder])

cimak
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1668
0

to tak dla zrozumienia co mowi blad kompilatora: Overload

Pegii
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 54
0

Przed chwilą przypadkiem znalazłem okienko nie wymagające dodatków i mające wszystkie funkcje tj. Nowy folder, możliwość wyboru mój komputer i lokalizacji sieciowych, a także prosty i jasny opis użycia:
PromptForFileName

Do tego może przydać się też jakby kompilator grymasił:
StringToWideChar

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.