有以下组件:Edit1,Edit2,Button1,Button2,OpenDialog1,其作用分别如下:
OpenDialog1的Filter设置为*.jpg;
Button1的Caption设置为'浏览',控制OpenDialog1,用来选择源jpg图片,并将源图片的路径显示到Edit2中(即Edit2.Text=OpenDialog1.FileName);
Button2的Caption设置为'确定',用来实现将源jpg图片复制到'同个文件夹下的Pic文件夹'(即.\Pic\)中;
Edit1用来输入目标图片的名字;
Edit2用来显示源图片路径;
代码如下:
procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
Edit2.Text:=Open.FileName;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
CopyFile(PChar(Edit2.Text),PChar('.\Pic\'+Edit1.Text+'.jpg'),True);
//如果我将这句的Edit2.Text换成某个固定的目录,比如'd:\try1\8.jpg',那么就能实现将图片复制到.\Pic,但是变回Edit2.Text的话就无法实现
end;
大家帮忙看看,为什么CopyFile(PChar(Edit2.Text),PChar('.\Pic\'+Edit1.Text+'.jpg'),True);中用了Edit2.Text就无法复制图片,而一旦改成某个具体路径又可以了?另外,读取过Edit2.Text的值,确实是路径,没什么问题~
OpenDialog1的Filter设置为*.jpg;
Button1的Caption设置为'浏览',控制OpenDialog1,用来选择源jpg图片,并将源图片的路径显示到Edit2中(即Edit2.Text=OpenDialog1.FileName);
Button2的Caption设置为'确定',用来实现将源jpg图片复制到'同个文件夹下的Pic文件夹'(即.\Pic\)中;
Edit1用来输入目标图片的名字;
Edit2用来显示源图片路径;
代码如下:
procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
Edit2.Text:=Open.FileName;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
CopyFile(PChar(Edit2.Text),PChar('.\Pic\'+Edit1.Text+'.jpg'),True);
//如果我将这句的Edit2.Text换成某个固定的目录,比如'd:\try1\8.jpg',那么就能实现将图片复制到.\Pic,但是变回Edit2.Text的话就无法实现
end;
大家帮忙看看,为什么CopyFile(PChar(Edit2.Text),PChar('.\Pic\'+Edit1.Text+'.jpg'),True);中用了Edit2.Text就无法复制图片,而一旦改成某个具体路径又可以了?另外,读取过Edit2.Text的值,确实是路径,没什么问题~
不过源代码中并没有敲错,大家再帮忙瞧瞧~~
换成
CopyFile(PChar(Edit2.Text),PChar(ExtractFilePath(Application.ExeName)+'\Pic\'+Edit1.Text+'.jpg'),True);或者将OpenDialog当中的加上ofNoChangeDir选项
var
Options: TOpenOptions;
begin
Options := OpenDialog1.Options ;
Include(Options,ofNoChangeDir);
OpenDialog1.Options := Options ;
end;
能问下ExtractFilePath(Application.ExeName)的作用吗?
Edit2.Text:=OpenDialog1.FileName?