witam
jak wyswietlic takie duze okno wyboru katalogu Windows'a, nie chodzi mi o takie okno jak SelectDirectory tylko to wieksze
witam
jak wyswietlic takie duze okno wyboru katalogu Windows'a, nie chodzi mi o takie okno jak SelectDirectory tylko to wieksze
Chodzi Ci o "Przeglądaj w poszukiwaniu folderu"? Jest komponent do tego w pakiecie JEDI oraz jest jakaś funkcja WinAPI (SHBrowserForFolder miała w nazwie chyba ;))
Przecież wystarczy komponent, który już masz w pakiecie Delphi :D
ShellListView lub ShellTreeView z zakładki Samples i odpowiednie wyskalowanie na całą formę i ewentualnie ustalenie ViewStyle według gustu...
Cześć
O takie cosik chodzi ? [???]
Uses ActiveX, ShlObj,
FUNCTION WybierzKatalog(uchwyt :THandle) :String;
var
browser :TBrowseInfo;
buf :PChar;
dirs,root :PItemIDList;
alloc :IMalloc;
Begin
SHGetMalloc(alloc); //pobieranie obiektu zarządzającego pamięcią
buf:= Alloc.Alloc(Max_Path); //przydzielenie pamięci na string
//ograniczenie wybóru tylko do katalogu "Menu Start\Programs"
SHGetSpecialFolderLocation(uchwyt,CSIDL_DESKTOP,root);
//ustawianie parametrów okienka systemowego...
with browser do
begin
HwndOwner:= uchwyt; //przydzielony uchwyt okna
//PidlRoot:= root; //pokazuje zamkniętą gałąź katalogów
PidlRoot:= nil; //pokazuje otwartą gałąź katalogów
PszDisplayName:= buf;
LpszTitle:= 'Wskazany katalog:'; //etykieta przed listą katalogów
UlFlags:= 1; //Ulflags = 0 powoduje pokazanie kat. drukarek,panelu ster itp.
Lpfn:= nil;
end;
//pobieranie nazwy...
try
dirs:= SHBrowseForFolder(browser); //pokazanie okienka systemowego
SHGetPathFromIDList(dirs ,buf); //pobiernie pełnej ścieżki do katalogu
Result:= buf; //pobieranie nazwy katalogu do funkcji
finally
Alloc.Free(root);
Alloc.Free(buf);
end;
End;
Przynajmniej w D7 jest wersja SelectDirectory upraszczająca użycie SHBrowseForFolder
Witam,
potrzebuje dokladnie tego samego okna tylko że w BCB, z góry dzieki za pomoc. :)
//Edit
Znalazłem najprostrze rozwiązanie , może komuś sie przyda ;P
include <FileCtrl.hpp>
AnsiString folder;
if (SelectDirectory("Wybierz folder.", "", folder))
{
ShowMessage("Wybrany folder to " + folder);
}
Wiem, wystarczyło poszukać [diabel]