2014-09-22 4 views
0

'print screen'을 실행 한 후 이미지를 cxImage 구성 요소에 붙여 넣습니다.LMDMapiSendMail1 - 첨부 파일로 printscreen 보내기

LMDMapiSendMail1 (lmdinnovative에서) 구성 요소에 cxImage의 내용을 첨부 파일로 보내려면 어떻게해야합니까?

+0

mhhh .. 꽤 광범위 ... – bummi

+2

임시 파일에 이미지를 저장 한 다음 Mapi에 경로와 파일 이름을 지정해야합니다. –

+0

내가 생각하기에 너는 맞다. 레미 ... – user3927897

답변

0

LMDMapiSendMail1은 첨부 파일을 파일로 처리하기 때문에 Remy가 말했듯이 먼저 파일을 저장해야합니다. printscreen을 파일로 저장하는 좋은 예를 발견했습니다 (Mike Shkolnik). cxImage1 속성 변경에 적용 :

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의 그림을 붙여 넣은 후) 는 그러나, 나는 모든 것을 단순화 :

procedure TForm11.AdvGlowButton2Click(Sender: TObject); 
begin 
cxImage1.Properties.GraphicClassName:='TJPEGImage'; 
cxImage1.picture.SaveToFile(extractfilepath(application.ExeName)+'picture.jpg'); 
end; 

다음은 한 :

procedure TForm11.AdvGlowButton1Click(Sender: TObject); 
Var Path: String; 
begin 
Path:= ExtractFilePath(Application.ExeName); 
LMDMapiSendMail1.Attachment.Append(Path + 'picture.jpg'); 
end; 

훨씬 더 간단을 ...