lStream.Free是时机不对?
我现在修改后如下,又出现107的错误了
procedure TMailEditorForm.actNewAttachmentExecute(Sender: TObject);
var
I: Integer;
lOpenDialog: TMailOpenDialog;
lStream: TFileStream;
begin
lOpenDialog := TMailOpenDialog.Create(Self);
try
lOpenDialog.Filter := '所有文件(*.*)|*.*';
lOpenDialog.Options := lOpenDialog.Options + [ofAllowMultiSelect, ofFileMustExist];
if lOpenDialog.Execute then
begin
lStream := TFileStream.Create(lOpenDialog.FileName, SysUtils.fmOpenRead);
try
if (lStream.Size) > 5242880 then
begin
ShowMessage('附件大小不能超过5M');
exit;
end;
finally
lStream.Free;
end;
for I := 0 to lOpenDialog.Files.Count - 1 do
msgMail.AddAttachment(lOpenDialog.Files[I]);
SetModified;
RefreshAttachs;
end;
BringWindowToTop(Handle);
// todo 以下两个过程,解决98下不能刷新的问题。
if Assigned(FTextEdit) then
FTextEdit.Refresh;
if Assigned(FDHTMLEdit) then
FDHTMLEdit.Refresh;
finally
lOpenDialog.Free;
end;
end;