读书人

delphi中关于 TOpenDialog 的有关问题

发布时间: 2013-07-16 22:38:04 作者: rapoo

delphi中关于 TOpenDialog 的问题
[code=delphi]
procedure TForm1.btn13Click(Sender: TObject);
var
str:string;
filename:Textfile;
path:string;
begin
form1.lst6.Clear;//@
path:=ExtractFilePath(ParamStr(0));
dlgOpen1.FileName:=path+'脚本.txt';
form1.mmo2.lines.Add(path+'脚本.txt');
if dlgOpen1.Execute then
begin
assignfile(filename,dlgOpen1.FileName);
reset(filename);
while not Eof(filename) do
begin
readln(filename,str);
form1.lst6.Items.Add(str);
end;
end;
end;
[code]
这段代码是自动加载在当前目录下的 脚本.txt 到form1.lst6 中
这个代码为什么不能让TOpenDialog 自动加载指定的dlgOpen1.FileName路径 ,还要我再选择一次?
dlgOpen1.Execute 这个我想要,但是 每次总要打开选择文件的框太麻烦了。每次都跳出那个选择框
有没办法 不跳出那个选择文件路径的框,自动加载指定路径的文件?
希望写过的能够给个解决方法。 TOpenDialog
[解决办法]
看下是不是你要的效果,按你说的意思根本就不要OpenDialog啊:


procedure TForm1.btn13Click(Sender: TObject);
var
str:string;
filename:Textfile;
path:string;
sFileName: string;
begin
form1.lst6.Clear;//@
path:=ExtractFilePath(ParamStr(0));
sFileName := path+'脚本.txt';//dlgOpen1.FileName:=path+'脚本.txt';
form1.mmo2.lines.Add(path+'脚本.txt');
//if dlgOpen1.Execute then
begin
assignfile(filename, sFileName);
//assignfile(filename,dlgOpen1.FileName);
reset(filename);
while not Eof(filename) do
begin
readln(filename,str);
form1.lst6.Items.Add(str);
end;
end;
end;

[解决办法]

// 你既然不需要手动指定文件路径,又要执行这个选择框干嘛。。。

procedure TForm1.btn13Click(Sender: TObject);
var
str:string;
filename:Textfile;
path:string;

procedure proc;


begin
assignfile(filename,dlgOpen1.FileName);
reset(filename);
while not Eof(filename) do
begin
readln(filename,str);
form1.lst6.Items.Add(str);
end;
end;
begin
form1.lst6.Clear;//@
path:=ExtractFilePath(ParamStr(0));
dlgOpen1.FileName:=path+'脚本.txt';
form1.mmo2.lines.Add(path+'脚本.txt');

if dlgOpen1.FileName <> '' then
begin
proc;
dlgOpen1.FileName := '';
Exit;
end;

if dlgOpen1.Execute then
begin
proc;
end;
end;

读书人网 >.NET

热点推荐