Avatar billede martin_andersen Nybegynder
15. august 2003 - 14:57 Der er 5 kommentarer

Hjælp til "SHBrowseForFolder"

Hej

Problem:
Jeg kan ikke angive en UNC-path som "initial folder"(default stien når dialogboxen vises). Hvis jeg mapper et drev er der ingen problemmer???

Er det ikke muligt at angive en UNC-path?

Jeg har prøvet forskellige metoder uden held. Her er noget kode jeg arbejder på lige nu:
-----------------------------------------------------------
function BrowseForFolderCallBack(Wnd: HWND; uMsg: UINT;
        lParam, lpData: LPARAM): Integer stdcall;
begin
    if uMsg = BFFM_INITIALIZED then
        SendMessage(Wnd,BFFM_SETSELECTION, 1,
            Integer(@lg_StartFolder[1]));
    result := 0;
end;
//////////////////////////////////////////////////////////////////////////
// This function allows the user to browse for a folder
//
// Arguments:-
//    browseTitle : The title to display on the browse dialog.
//  initialFolder : Optional argument. Use to specify the folder initially
//                  selected when the dialog opens.
//
// Returns: The empty string if no folder was selected (i.e. if the user
//          clicked cancel), otherwise the full folder path.
//////////////////////////////////////////////////////////////////////////
function BrowseForFolder(const browseTitle: String;
        const initialFolder: String =''): String;
var
    browse_info: TBrowseInfo;
    folder: array[0..MAX_PATH] of char;
    find_context: PItemIDList;
begin
    FillChar(browse_info,SizeOf(browse_info),#0);
    lg_StartFolder := initialFolder;
    browse_info.pszDisplayName := @folder[0];
    browse_info.lpszTitle := PChar(browseTitle);
    browse_info.ulFlags := BIF_RETURNONLYFSDIRS;
    browse_info.lpfn := BrowseForFolderCallBack;
    find_context := SHBrowseForFolder(browse_info);
    if Assigned(find_context) then
    begin
        if SHGetPathFromIDList(find_context,folder) then
            result := folder
        else
            result := '';
    end
    else
        result := '';
end;
-----------------------------------------------------------
På forhånd tak...
Avatar billede borrisholt Novice
15. august 2003 - 15:00 #1
Avatar billede martin_andersen Nybegynder
15. august 2003 - 15:13 #2
Jeg kan ikke angive et "defaultdir" med funktionen:
"BrowseForFolder(hndl: HWND; msg: string=''): string;"

Det er lidt det samme som jeg har forsøgt i forvejen.
Jeg kan godt vælge et drev på en anden maskine, men jeg kan ikke sætte "defaultdir" til et drev på en anden maskine.
Avatar billede doc404 Novice
15. august 2003 - 22:28 #3
Her er det du skal bruge. Initial dir kan sættes via call back functionen

http://www.efg2.com/Lab/Library/UseNet/2001/0927b.txt
Avatar billede martin_andersen Nybegynder
18. august 2003 - 09:44 #4
Er der nogen af jer der har forsøgt at sætte initialdir til en UNC-path?

eks) "\\nt_server\min_mappe\"

Jeg kan ikke få den til at æde den. Jeg kan godt hvis jeg mapper et drev og angiver stien sådan) "M:\mit_drev".
Avatar billede martin_andersen Nybegynder
19. august 2003 - 11:06 #5
Rettelse.... Den fungere fint på en win2000, men ikke på min NT???
Jeg har også forsøgt på 95 uden held.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester