幫我看看下面這段代碼(DbImage1對應一個SQL表Image字段)
出錯信息是: 程式無法存取檔案, 因為檔案正由另一個程式使用.
那個檔案是BMP的,事實上沒有打開它.
procedure Tfmhrjbzl.DBImage1DblClick(Sender: TObject);
var
f: file of Byte;
size: Longint;
MS: TMemoryStream;
begin
inherited;
if OPDiag1.Execute then
begin
AssignFile(f, OpDiag1.FileName);
Reset(f);
size := FileSize(f);
if size<20480 then
begin
DM1.TbEmpl.Edit;
DBImage1.Picture.LoadFromFile(OpDiag1.FileName);
DM1.TbEmpl.Post;
end else showmessage('這選的這個圖案太大了');
end;
end;
出錯信息是: 程式無法存取檔案, 因為檔案正由另一個程式使用.
那個檔案是BMP的,事實上沒有打開它.
procedure Tfmhrjbzl.DBImage1DblClick(Sender: TObject);
var
f: file of Byte;
size: Longint;
MS: TMemoryStream;
begin
inherited;
if OPDiag1.Execute then
begin
AssignFile(f, OpDiag1.FileName);
Reset(f);
size := FileSize(f);
if size<20480 then
begin
DM1.TbEmpl.Edit;
DBImage1.Picture.LoadFromFile(OpDiag1.FileName);
DM1.TbEmpl.Post;
end else showmessage('這選的這個圖案太大了');
end;
end;
Reset(f);
这里你的那个图片不是正在给f这个file使用吗,运行当然报错了!!
var
f: file of Byte;
size: Longint;
begin
inherited;
if OPDiag1.Execute then
begin
AssignFile(f, OpDiag1.FileName);
Reset(f);
size := FileSize(f);
if size<20480 then
begin
CloseFile(f);
DBImage1.Picture.LoadFromFile(OpDiag1.FileName);
end else showmessage('這選的這個圖案太大了');
end;
end;
begin
DM1.TbEmpl.Edit;
DBImage1.Picture.LoadFromFile(OpDiag1.FileName);
DM1.TbEmpl.Post;
end else showmessage('這選的這個圖案太大了');
begin
DM1.TbEmpl.Edit;
DBImage1.Picture.LoadFromFile(OpDiag1.FileName);
dbimage1.CopyToClipborad;
dbimage1.PasteFromClipboard
// DM1.TbEmpl.Post;
end else showmessage('這選的這個圖案太大了');///这样就可以了....呵呵
Reset(f);
后面加一个
closefile(f);
之后再LoadFromFile