简单问题!!!夸张点给200分! 内容:http://expert.csdn.net/Expert/topic/2057/2057049.xml?temp=.9140131UP的都有分! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 文件格式只是图片保存的一种格式而已,只要能正常显示图片,就可以将显示区域的Canvas,复制到剪贴板。如何复制就不用说了吧。 楼上的意思就是直接Cut clipboard? 用1个image Image1.Picture.LoadFromFile(FileName); c.Assign(Image1.Picture);这样应该可以如果不支持这种格式可以注册一下Tpicture.RegisterClipboardFormat() 忘了var c:Tclipboard; 这种问题如此破费的确有点夸张,看看delphi的SaveToClipBroad的帮助,自己就明白了 在opendialog里面选择文件以后就直接复制进剪贴板吗?不好意思,,没有弄懂你这样做的意图。以我的理解,你可将这个图片文件当成一般的二进制文件来读取,将得到的二进制数据存进一个缓冲区里面,再对这个缓冲区的数据进行操作,不过这样需要你自己开辟相当于剪贴板的空间了而不是利用系统给你的剪贴板缓冲区了。 我是楼主!!!!我想的就是选择文件。就包括多种图片格式。如果要判断的话,我就要创建多种格式啊。(CREATE)变量又多。所以我是想把选择的文件不管是什么格式都复制到剪粘板中去的啊!!! procedure TMainForm.Inse_PicClick(Sender: TObject);var Tmp : Tjpegimage; Tmp1 : TbitMap; MyFormat : Word; AData: Cardinal; APalette: HPALETTE; FileName : string;begin OpenDialog.Filter:='位图文件 (*.bmp)|*.bmp|Jpeg文件 (*.jpg)|*.jpg'; IF OpenDialog.Execute then begin FileName:=OpenDialog.FileName; IF UpperCase(ExtractFileExt(FileName))='.JPG' then begin Tmp:=TjpegImage.Create; Tmp.LoadFromFile(FileName); Tmp.SaveToClipboardFormat(MyFormat, AData, APalette); ClipBoard.SetAsHandle(MyFormat, AData); SendMessage(RichLearn.Handle, WM_Paste, 0, 0); Tmp.Free; End Else IF UpperCase(ExtractFileExt(FileName))='.BMP' then begin Tmp1:=TBitMap.Create; Tmp1.LoadFromFile(FileName); Tmp1.SaveToClipboardFormat(MyFormat, AData, APalette); ClipBoard.SetAsHandle(MyFormat, AData); SendMessage(RichLearn.Handle, WM_Paste, 0, 0); Tmp1.Free; End Else begin Application.MessageBox('对不起,不支持这种格式','提示',Mb_OK+Mb_IconInformation); End; End;end;现在的代码就是这个样!!请看一下。每多一种格式就会多一个变量啊。要知道图片格式有N多种啊! 100个up>>>>>>>>>>> 以统一的格式.如文字以unicode.至于是图片的话就参照delphi的SaveToClipBroad的帮助 数据库问题 求救,明天就要用了,delphi+ado+access添加删除修改的语句怎么写啊.为什么跟连接SQLserver的不一样 一个弱智 高分问题 Trewview(满分100) 被逼放分,阿门 刚刚写的一个分解字段名的函数,让各位见笑了,如果有更好的算法,希望共同交流 FastReport4 设置连续打印的问题! 求助~~~关于程序窗口隐藏 如何取得本机SQL的密码和里面所有的数据库名? 如何取得网页中某个URL的坐标 这样写为什么老出错?是类型转换的问题吗? 请问用tquery时是否也需要bde? 请问谁有一种语言的编译器源代码啊?
如何复制就不用说了吧。
Image1.Picture.LoadFromFile(FileName);
c.Assign(Image1.Picture);
这样应该可以
如果不支持这种格式可以注册一下
Tpicture.RegisterClipboardFormat()
var
c:Tclipboard;
SaveToClipBroad的帮助,自己就明白了
不好意思,,没有弄懂你这样做的意图。
以我的理解,你可将这个图片文件当成一般的二进制文件来读取,将得到的二进制数据存进一个缓冲区里面,再对这个缓冲区的数据进行操作,不过这样需要你自己开辟相当于剪贴板的空间了而不是利用系统给你的剪贴板缓冲区了。
我想的就是选择文件。
就包括多种图片格式。
如果要判断的话,
我就要创建多种格式啊。(CREATE)
变量又多。所以我是想把选择的文件不管是什么格式都复制到剪粘板中去的啊!!!
var
Tmp : Tjpegimage;
Tmp1 : TbitMap;
MyFormat : Word;
AData: Cardinal;
APalette: HPALETTE;
FileName : string;
begin
OpenDialog.Filter:='位图文件 (*.bmp)|*.bmp|Jpeg文件 (*.jpg)|*.jpg';
IF OpenDialog.Execute then begin
FileName:=OpenDialog.FileName;
IF UpperCase(ExtractFileExt(FileName))='.JPG' then begin
Tmp:=TjpegImage.Create;
Tmp.LoadFromFile(FileName);
Tmp.SaveToClipboardFormat(MyFormat, AData, APalette);
ClipBoard.SetAsHandle(MyFormat, AData);
SendMessage(RichLearn.Handle, WM_Paste, 0, 0);
Tmp.Free;
End
Else IF UpperCase(ExtractFileExt(FileName))='.BMP' then begin
Tmp1:=TBitMap.Create;
Tmp1.LoadFromFile(FileName);
Tmp1.SaveToClipboardFormat(MyFormat, AData, APalette);
ClipBoard.SetAsHandle(MyFormat, AData);
SendMessage(RichLearn.Handle, WM_Paste, 0, 0);
Tmp1.Free;
End
Else begin
Application.MessageBox('对不起,不支持这种格式','提示',Mb_OK+Mb_IconInformation);
End;
End;
end;现在的代码就是这个样!!
请看一下。
每多一种格式就会多一个变量啊。
要知道图片格式有N多种啊!
至于是图片的话就参照delphi的
SaveToClipBroad的帮助