首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

delphi中关于 TOpenDialog 的有关问题

2013-07-16 
delphi中关于 TOpenDialog 的问题[codedelphi] procedure TForm1.btn13Click(Sender: TObject)varstr:st

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;

热点排行