首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LMDMapiSendMail1 -发送打印屏幕作为附件

问LMDMapiSendMail1 -发送打印屏幕作为附件
EN

Stack Overflow用户
提问于 2014-09-22 21:32:09
回答 1查看 109关注 0票数 0

在“打印屏幕”之后,我将图像粘贴到cxImage组件中。

我如何告诉LMDMapiSendMail1 (从the创新组件)将cxImage的内容作为附件发送?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-23 15:44:32

正如雷米所说,因为LMDMapiSendMail1将附件作为文件处理,所以必须首先保存该文件。我找到了一个将printscreen保存到文件的好例子(Mike )。将其应用于cxImage1属性更改:

代码语言:javascript
复制
procedure TForm11.cxImage1PropertiesChange(Sender: TObject);
var DCDesk: HDC;
bmp: TBitmap;
begin
bmp := TBitmap.Create;
  bmp.Height := Screen.Height;
  bmp.Width := Screen.Width;
  DCDesk := GetWindowDC(GetDesktopWindow);
  BitBlt(bmp.Canvas.Handle, 0, 0, Screen.Width, Screen.Height,
         DCDesk, 0, 0, SRCCOPY);
  bmp.SaveToFile('ScreenShot.bmp');
  ReleaseDC(GetDesktopWindow, DCDesk);
  bmp.Free;
end;

它将文件保存在application.exe文件夹中。现在剩下的就是告诉LMDMapiSendMail1文件在哪里,并将其作为附件添加,如下所示:

LMDMapiSendMail1.Attachment.Append('ScreenShot.bmp');

不太优雅,但很实用。

但是,我通过单击按钮简化了所有操作(在cxImage1中粘贴了图片之后):

代码语言:javascript
复制
procedure TForm11.AdvGlowButton2Click(Sender: TObject);
begin
cxImage1.Properties.GraphicClassName:='TJPEGImage';
cxImage1.picture.SaveToFile(extractfilepath(application.ExeName)+'picture.jpg');
end;

然后就这么做了:

代码语言:javascript
复制
procedure TForm11.AdvGlowButton1Click(Sender: TObject);
Var Path: String;
begin
Path:= ExtractFilePath(Application.ExeName);
LMDMapiSendMail1.Attachment.Append(Path + 'picture.jpg');
end;

简单多了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25983443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档