即文件ctrl+c复制后,用ctrl+v粘贴出来
解决方案 »
- 谁能看懂这篇文章里面指的WSDL地址?
- 为什么ini文件读写相同报错
- 初学者求助!!谢谢光临!
- 扫描仪activex控件
- 本人开发的企业管理软件,请多多指教
- 请教这样一个问题:怎样随意改变StringGrid的单元格的底色,并且在改变下一个单元格底色后前面的设置继续保留原状。
- 如果我知道SA的密码?
- 知道一个字段,要查找等于此字段的一条记录,并将焦点放到这条记录上,在D6上locate好象不行。有别的办法吗?
- 心情不好,送分!
- 伴水我的那个问题帮我看了吗?谢谢啦!
- 建议CSDN添加一条规则:所有在CSDN提问题的人,如果问题自己解决了,[必须]把解决的办法公开。
- 居然出现这样的问题,熟悉sndplaysound函数的高手请帮忙!!!
过程: g_pro_SavePicInClipboard
作者: 黄仁光
日期: 2002年12月19日
参数:
目的: None
备注:将剪贴板的BMP图片存到本地文件
--------------------------------------------------------------}procedure g_pro_SavePicInClipboard(strFileName: string);
var
objBitmap : TBitmap;
begin
try
objBitmap := TBitmap.Create;
objBitmap.Assign(Clipboard);
objBitmap.SaveToFile(strFileName);
finally
FreeAndNil(objBitmap);
end;
end;
DataHandle: Thandle;
FilesCount: Integer;
FileName: PChar;
I: Integer;
begin
if Clipboard.HasFormat(CF_HDROP) then
begin
GetMem(FileName, MAX_PATH+1);
DataHandle := Clipboard.GetAsHandle(CF_HDROP);
FilesCount := DragQueryFile(DataHandle, MAXDWORD, FileName, MAX_PATH);
for I := 0 to FilesCount-1 do
if DragQueryFile(DataHandle, I, FileName, MAX_PATH) > 0 then
Memo1.Lines.Add(FileName); //将文件名添加到Memo1
FreeMem(FileName);
end;
end;————————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
————————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
————————————————————————————————————
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
NextClipHwnd:HWND;//观察链中下一个窗口句柄
procedure WMDrawClipBoard(var MyMessage:TMessage);message WM_DRAWCLIPBOARD;
//处理WM_DRAWCLIPBOARD消息过程
procedure WMChangeCBChain(var MyMessage:TMessage);message WM_CHANGECBCHAIN;
//处理WM_CHANGECBCHAIN消息过程
end;var
Form1: TForm1;implementation
uses
clipbrd,shellAPI;
{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
Clipboard.Clear; //初始化剪贴板
NextClipHwnd:=SetClipBoardViewer(Handle);//嵌入新的剪贴监视器
end;procedure TForm1.WMDrawClipBoard(var MyMessage: TMessage);
var
drophandle :Thandle;
Filescount :integer;
FileName :array[0..MAX_PATH] of Char;
i :integer;
begin
sendmessage(NextClipHwnd,MyMessage.Msg,MyMessage.WParam,MyMessage.LParam);
if clipboard.HasFormat(CF_HDROP) then
begin
drophandle:=Clipboard.GetAsHandle(CF_HDROP);
filescount:=DragQueryFile(Drophandle,$FFFFFFFF,Filename,max_path); //获得文件拖放数目
for i:=0 to filescount-1 do
begin
fillchar(filename,sizeof(filename),0);
if dragqueryfile(drophandle,i,Filename,max_path)>0 then
memo1.lines.add(strpas(@filename));
end; //获取所有拖放文件的文件名
end;
end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
ChangeClipboardChain(Handle,NextClipHwnd);//删除剪贴板监视器
end;procedure TForm1.WMChangeCBChain(var MyMessage: TMessage);
begin
sendmessage(NextClipHwnd,MyMessage.Msg,MyMessage.WParam,MyMessage.LParam);//向下一个监视器传递监视器删除消息
end;end.