小弟已经做好了一个类似于资源管理器那样的目录树了
现在我想根据用户提供的文件名,对目录树进行查找
当查找到后还要像资源管理器那样能一级一级的展开
该怎么做啊?
主要是自动展开该怎么做啊?
现在我想根据用户提供的文件名,对目录树进行查找
当查找到后还要像资源管理器那样能一级一级的展开
该怎么做啊?
主要是自动展开该怎么做啊?
解决方案 »
- delphi 如何根据指定路径展开shelltreeview的节点(譬如'C:\1\2\3')
- 如何去除XPmanifest?
- 邮件发送不完整
- 请教各位showmessage的特殊问题,可否实现?
- 急:用Delphi程序创建数据表,怎么将字段设为主键或非空或不允许重复啊?
- Raize 组件Bug问题?
- 请问大家,在动态生成的组件,为什么不显示?
- 打开dbf表时,提示说corrupt table/index head.怎么搞定啊?
- 如何双击tabsheet标签关闭当前tabsheet?
- 关于bde定制的问题,快急死人了!请各位大侠指教。
- 急:如何在动态库的MDI窗体释放时释放所有资源
- WebBrowser组件提交表单的问题!
var
i:integer;
begin
for i:=0 to TreeView1.Items.Count-1 do
begin
if TreeView1.Items[i].Text=Edit1.Text then
begin
TreeView1.Items[i].Selected:=true;
TreeView1.SetFocus;
end; end;end;
TreeView1.items[1].Expand(true);
TreeView1.SetFocus;是什么意思啊?
入口参数: isAllString-是否为全字匹配 isGreatString-是否区分大小写 FindText-所找字符串}
function TFormNote.FindString(isAllString: Boolean; isGreatString:Boolean; FindText: String): boolean;
var
i : integer;
ANode : TTreeNode;
bStart : Boolean;
TempTerm : Boolean;
begin
bStart := False;
ANode := nil;
Result := True;
for i := 0 to TreeView1.Items.Count - 1 do
begin
ANode := TreeView1.Items[i];
if isAllString and not(isGreatString) then // 全字匹配且不取分大小写
TempTerm := (AnsiCompareText(FindText,ANode.Text) = 0); if isAllString and isGreatString then // 全字匹配且取分大小写
TempTerm := (AnsiCompareStr(FindText,ANode.Text) = 0); if not isAllString and isGreatString then //不全字匹配但区分大小写
TempTerm := (pos(FindText,ANode.Text) > 0); if not isAllString and not isGreatString then //不全字匹配且不区分大小写
TempTerm := (pos(lowercase(FindText),lowercase(ANode.Text)) > 0); if bStart and (TempTerm) then
begin
ANode.Selected := True;//因为此句,所以找到后自然能自动展开
TreeView1.SetFocus;
Exit;
end;
bStart := bStart or (ANode = TreeView1.Selected);
end;
if i = TreeView1.Items.Count then
Result := False;
end;
//查找下一个(F3)
procedure TFormNote.FindNextClick(Sender: TObject);
begin
if not FormNote.FindString(AllBooleanTemp, GreatBooleanTemp, FindTextTemp) then
begin
MessageDlg('“'+FindTextTemp+'” 没有发现!', mtInformation, [mbOK], 0);
FindNext.Enabled := False;
end;
end;