粘贴图片的顶级难题-如何可以直接按CTRL+V粘贴图片(100分)

  • 主题发起人 主题发起人 aacc_1980
  • 开始时间 开始时间
A

aacc_1980

Unregistered / Unconfirmed
GUEST, unregistred user!
各位朋友,想请教一下,下面的代码可以完整实现用CTRL+V粘贴图片,代码如下:

但有一个很大的问题,就是所有图片,必须要先粘贴到画图程序,然后再在画图程序里面,复制-->粘贴,这样,图片才能粘贴到自己所做的程序里面,想请教一下,能不能直接在任何地方,按了剪切键,然后就直接可以将图片粘贴到自己的程序上。

例如:自己有一个EXCEL文件,里面有多个图片,然后在EXCEL里面剪切了一幅图片,在自己程序里面按CTRL+V是不能直接粘贴的,必须要先打开画图程序,然后将图片粘贴进去,然后再通过在画图程序里面复制,最后在自己的程序按CTRL+V,这样才能将图片粘贴到自己的程序。

诚心希望有大虾能解决这个问题,不管在什么时候,只要剪切了图片,直接按下CTRL+V即可在自己的程序里面粘贴图片,谢谢!!!


procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
Jpg: TJpegImage;
Bmp: TBitmap;
begin
if (Shift = [ssCtrl]) and (key = 86) then
begin
if Bmp <> nil then Bmp := nil;
Bmp := TBitmap.Create;
Bmp.Assign(Clipboard);
image1.Picture.Bitmap := Bmp;
Bmp.Free;

if jpg <> nil then jpg := nil;
Jpg := TJpegImage.Create;
Jpg.Assign(image1.Picture.Bitmap);
Jpg.SaveToFile('c:/1.jpg ');
Jpg.Free;
end;
end;
 
ImageEn里有相关的代码, 但是没有仔细在研究过。你不妨看看。

你到以下地址去找找,可能找得到你需要的答案。
http://iinsnian.cnblogs.com/
http://del.cnblogs.com/
这两个地址里介绍了很多DELPHI的技巧,不知道你的运气好不好。
 
楼上的朋友, 自己必须是使用Timage这个控件的,而不使用其它第三方的控件,希望有朋友能再帮忙提供一点资料,谢谢!
 
clipboard 编程问题
 
楼主何必绕弯子......delphi已经写好了啊....

uses
Clipbrd;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Shift = [ssCtrl]) and (key = 86) and clipboard.HasFormat(CF_BITMAP) then
begin
image1.Picture.LoadFromClipboardFormat(CF_BITMAP,ClipBoard.GetAsHandle(CF_BITMAP),0);
end;
end;
 
其实你从Excel剪切过来的图片ClipboardFormat为:CF_METAFILEPICT。
首先定义:
TDevClip=class(TClipboard);

然后FormKeyDown事件:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
Metafile:TMetafile;
begin
if (Shift = [ssCtrl]) and (key = 86) then
begin
if clipboard.HasFormat(CF_METAFILEPICT) then
begin
Metafile:=TMEtafile.Create;
TDevClip(clipboard).AssignTo(Metafile);
image1.Picture.Graphic:=Metafile;
Metafile.Free;
end;
end;
end;
这样就可以实现你的功能了。
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部