如何在選取目錄時指定默認目錄 |
答題得分者是:timhuang
|
WoodTiger
初階會員 發表:35 回覆:90 積分:25 註冊:2003-08-01 發送簡訊給我 |
|
WoodTiger
初階會員 發表:35 回覆:90 積分:25 註冊:2003-08-01 發送簡訊給我 |
|
Clarinet
高階會員 發表:9 回覆:97 積分:126 註冊:2002-05-08 發送簡訊給我 |
|
WoodTiger
初階會員 發表:35 回覆:90 積分:25 註冊:2003-08-01 發送簡訊給我 |
引言:謝謝你的回答,試了一下: lParam:=Integer(PChar('c:\windows')); 好像沒有效果哎!是不是我這樣寫是不對的,還是有其他的地方還需要注意? 請指教!謝謝! 另外問一句,Delphi中要通過窗口來得到一個目錄名是這麽難的事嗎?還是另有辦法呢? ================================== 搞得懂就答人,搞不懂就問人,沒有人懂還可以問神! 發表人 - woodtiger 於 2005/08/22 20:05:15ulFlags := Flag; lpfn := BrowseDialogCallBack; //加入這一行 Directory就是你要的起始目錄 lParam :=Integer(PChar(Directory));
------
-=-=-=-=-=-=-=-=-=-=-= Eveything as your wish. |
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
Hi, 改了一下, 你試看:
function BrowseDialogCallBack(Wnd: HWND; uMsg: UINT; lParam, lpData: LPARAM):integer stdcall; var wa, rect : TRect; dialogPT : TPoint; begin //center in work area if uMsg = BFFM_INITIALIZED then begin wa := Screen.WorkAreaRect; GetWindowRect(Wnd, Rect); dialogPT.X := ((wa.Right-wa.Left) div 2)-((rect.Right-rect.Left) div 2); dialogPT.Y := ((wa.Bottom-wa.Top) div 2)-((rect.Bottom-rect.Top) div 2); MoveWindow(Wnd,dialogPT.X,dialogPT.Y,Rect.Right - Rect.Left,Rect.Bottom - Rect.Top,True); SendMessage(Wnd, BFFM_SETSELECTION, Integer(True), lpdata); end; Result := 0; end; {BrowseDialogCallBack} function BrowseDialog(const Title: string; defaultpath: string; const Flag: integer): string; var lpItemID : PItemIDList; BrowseInfo : TBrowseInfo; DisplayName : array[0..MAX_PATH] of char; TempPath : array[0..MAX_PATH] of char; begin Result:=''; FillChar(BrowseInfo, sizeof(TBrowseInfo), #0); with BrowseInfo do begin hwndOwner := Application.Handle; pszDisplayName := @DisplayName; lpszTitle := PChar(Title); ulFlags := Flag; lpfn := BrowseDialogCallBack; BrowseInfo.lParam := Integer(PChar(defaultpath)); end; lpItemID := SHBrowseForFolder(BrowseInfo); if lpItemId <> nil then begin SHGetPathFromIDList(lpItemID, TempPath); Result := TempPath; GlobalFreePtr(lpItemID); end; end; BrowseDialog('test', 'c:\test', 0)因為最重要的, callback 通知要設置的預設目錄沒有改到, 所以沒有作用囉!! |
WoodTiger
初階會員 發表:35 回覆:90 積分:25 註冊:2003-08-01 發送簡訊給我 |
|
Clarinet
高階會員 發表:9 回覆:97 積分:126 註冊:2002-05-08 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |