ShellTreeView中如何初始化选定的目录? shelltreeview缺省选择在根目录,怎么让他缺省选择某一个我指定的目录呢?比如让他缺省选择d:\movie目录而不是桌面。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 顶一下,我也碰到这个问题,楼上的说Root那个属性,设置一下那其它目录不是没了,我只想选中指定的目录,其它列表也都要在, //有一个Path可以控制,可以现在测试无效,是VCL的bugprocedure TCustomShellTreeView.SetPath(const Value: string);var P: PWideChar; NewPIDL: PItemIDList; Flags, NumChars: LongWord;begin NumChars := Length(Value); Flags := 0; P := StringToOleStr(Value); try OLECheck(DesktopShellFolder.ParseDisplayName( 0, nil, P, NumChars, NewPIDL, Flags) ); FUpdating := True; //把这句话去掉 SetPathFromID(NewPIDL); except on EOleSysError do raise EInvalidPath.CreateFmt(SErrorSettingPath, [Value]); end; FUpdating := False;end;//如下代码,Delphi6测试通过uses ComObj, ShlObj, TypInfo;function DesktopShellFolder: IShellFolder;begin OleCheck(SHGetDesktopFolder(Result));end;type TSetPathFromID = procedure(ID: PItemIDList) of object;procedure TForm1.BitBtn1Click(Sender: TObject);var P: PWideChar; NewPIDL: PItemIDList; NumChars, Flags: LongWord; Value: string; vSetPathFromID: TSetPathFromID; vPropInfo: PPropInfo;begin Value := 'd:\movie'; NumChars := Length(Value); P := StringToOleStr(Value); try OLECheck(DesktopShellFolder.ParseDisplayName( 0, nil, P, NumChars, NewPIDL, Flags) ); vPropInfo := GetPropInfo(TShellTreeView, 'Root'); TMethod(vSetPathFromID).Code := Pointer(Integer(vPropInfo.SetProc) - $180); TMethod(vSetPathFromID).Data := ShellTreeView1; //为了调用TCustomShellTreeView.SetPathFromID私有方法 vSetPathFromID(NewPIDL); except end;end; delphi怎样从linux服务器下载文件 delphi 配置文件工具一点小问题请教师傅们 100分请教!!!!!! 关于Scoket编程的问题! Why can't load package.... 在popupmenu的popup事件中使用以下语句对menuitem的checked属性赋值 这样写为什么post不进去 100分求助,如何实现windows自带屏保‘星空’的效果,就是好多‘点’往外飞的效果? 帮忙!! 一个奇怪的问题。使用filelistbox框后打不开paradox表!!! 朋友们帮我解决个问题:写入数据库问题? new 对象 TList保存之问题
procedure TCustomShellTreeView.SetPath(const Value: string);
var
P: PWideChar;
NewPIDL: PItemIDList;
Flags,
NumChars: LongWord;
begin
NumChars := Length(Value);
Flags := 0;
P := StringToOleStr(Value);
try
OLECheck(DesktopShellFolder.ParseDisplayName(
0,
nil,
P,
NumChars,
NewPIDL,
Flags)
);
FUpdating := True; //把这句话去掉
SetPathFromID(NewPIDL);
except on EOleSysError do
raise EInvalidPath.CreateFmt(SErrorSettingPath, [Value]);
end;
FUpdating := False;
end;
//如下代码,Delphi6测试通过uses ComObj, ShlObj, TypInfo;function DesktopShellFolder: IShellFolder;
begin
OleCheck(SHGetDesktopFolder(Result));
end;type TSetPathFromID = procedure(ID: PItemIDList) of object;procedure TForm1.BitBtn1Click(Sender: TObject);
var
P: PWideChar;
NewPIDL: PItemIDList;
NumChars,
Flags: LongWord;
Value: string;
vSetPathFromID: TSetPathFromID;
vPropInfo: PPropInfo;
begin
Value := 'd:\movie';
NumChars := Length(Value);
P := StringToOleStr(Value);
try
OLECheck(DesktopShellFolder.ParseDisplayName(
0,
nil,
P,
NumChars,
NewPIDL,
Flags)
);
vPropInfo := GetPropInfo(TShellTreeView, 'Root');
TMethod(vSetPathFromID).Code := Pointer(Integer(vPropInfo.SetProc) - $180);
TMethod(vSetPathFromID).Data := ShellTreeView1; //为了调用TCustomShellTreeView.SetPathFromID私有方法
vSetPathFromID(NewPIDL);
except
end;
end;