2,496
社区成员
发帖
与我相关
我的任务
分享
procedure TForm1.Button2Click(Sender: TObject);
begin
if openpicturedialog1.Execute then
image1.Picture.LoadFromFile(openpicturedialog1.FileName );
end;
procedure TForm1.Button2Click(Sender: TObject);
var
filehandle:integer;
begin
if openpicturedialog1.Execute then
begin
filehandle:=fileopen(openpicturedialog1.FileName,0);
try
if (getfilesize(filehandle,nil))<30720 then
begin
image1.Picture.LoadFromFile(openpicturedialog1.FileName );//这里是不是有问题呀?
end;
if (getfilesize(filehandle,nil))>30720 then
begin
showmessage('图片超过30KB,请重新选择!');
end;
except
application.MessageBox('系统错误!','提示',0+64) ;
button2.SetFocus;
end;
end;
end;
其中image1.Picture.LoadFromFile(openpicturedialog1.FileName );是不是我写的不对呀,当小于30KB时,image1没有把那个小于30KB的图片load进来,望高手给改下,或者换条语句?谢谢了
Delphi自身提供了FileSize函数,例如:
var
f: file of Byte;
size : Longint;
begin
AssignFile(f, 'f:\t.exe');
Reset(f);
size := FileSize(f);
edit1.text := IntToStr(size);
CloseFile(f);
end;
这一种如果判断的文件被其它程序使用,则会报错 I/O Error
下面这种方法相对更好一些
也可以使用下面的方法:
function GetFileSize(const FileName: String): LongInt;
var SearchRec: TSearchRec;
begin
if FindFirst(ExpandFileName(FileName), faAnyFile, SearchRec) = 0 then
Result := SearchRec.Size
else
Result := -1;
end