DELPHI中Tedit1 button1 FileListBox1,如何实现Tedit输入文字单击button,filelistbox显示类似文字列表
3个回答
展开全部
直接在Button的onClick里写
var
i: Integer;
s:String;
begin
for i := FileListBox1.items.count-1 do
if Pos(TEdit1.text,FileListBox1.items[i])>-0
s := s+#13+FileListBox1.items[i]);
FileListBox1.items.Text := TEdit1.text
end
FileListBox1.items就是一个TStrings,可以修改
如果要实现过滤,还是用多一个TStringList记录FileListBox1.items的初始内容吧
var
i: Integer;
s:String;
begin
for i := FileListBox1.items.count-1 do
if Pos(TEdit1.text,FileListBox1.items[i])>-0
s := s+#13+FileListBox1.items[i]);
FileListBox1.items.Text := TEdit1.text
end
FileListBox1.items就是一个TStrings,可以修改
如果要实现过滤,还是用多一个TStringList记录FileListBox1.items的初始内容吧
追问
不是指定路径。。。是D:\1文件夹下有222.doc 1111.doc 1.doc;edit1输入1按button FileListBox显示出1.doc和1111.doc类似于模糊查询实现。你的这个会显示上述D:\1文件夹下文件列表么?貌似你的代码提示错误了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
procedure TForm1.Button1Click(Sender: TObject);
begin
try
self.FileListBox1.Directory := edit1.Text;
except
on e:exception do
begin
if e.Message = 'File not found' then
showmessage('路径不存在');
end;
end;
end;
begin
try
self.FileListBox1.Directory := edit1.Text;
except
on e:exception do
begin
if e.Message = 'File not found' then
showmessage('路径不存在');
end;
end;
end;
追问
不是指定路径。。。是D:\1文件夹下有222.doc 1111.doc 1.doc;edit1输入1按button FileListBox显示出1.doc和1111.doc类似于模糊查询实现
追答
procedure TForm1.Button1Click(Sender: TObject);
begin
self.FileListBox1.Mask := '*' + self.edit1.Text + '*.*'; //设置通配符 点后面那个是文件类型,如果你都是一样的文件类型可以把这个星号定死
try
self.FileListBox1.Directory := 'D:\'; //目录自己定
except
on e:exception do
begin
if e.Message = 'File not found' then
begin
showmessage('路径不存在');
exit;
end;
end;
end;
end;
//刚试了下以上方法,通配符好像有点问题,当edit1.text里面只有1的时候,会把一些不包含的文件也列出来,我采用了另一种方法,具体如下:
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
fna: string;
begin
try
self.FileListBox1.Directory := 'D:\1'; //目录自己定
except
on e:exception do
begin
if e.Message = 'File not found' then
begin
showmessage('路径不存在');
exit;
end;
end;
end;
for i := self.FileListBox1.Count-1 downto 0 do //循环判断文件列表中的文件名,如果不包含关键字则删除相应项
begin
fna := self.FileListBox1.Items.Strings[i];
if pos(self.Edit1.Text, fna) = 0 then //针对整个文件名,包括文件类型后缀
//if pos(self.Edit1.Text, copy(fna, 1, pos('.', fna)-1) = 0 then //针对整个文件名,不包括文件类型后缀(和上面那个if条件语句可根据需要二选一)
self.FileListBox1.Items.Delete(i);
end;
end;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你说的是自动完成吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询