uses Clipbrd;procedure TForm1.Button1Click(Sender: TObject); var Bitmap:TBitmap; begin if Clipboard.HasFormat(CF_BITMAP) then begin Bitmap:=TBitmap.Create; Bitmap.Assign(Clipboard); Image1.Canvas.Draw(0,0,Bitmap); FreeAndNil(Bitmap); end; end;
procedure TForm1.Button1Click(Sender: TObject); var f: THandle; buffer: Array [0..MAX_PATH] of Char; i, numFiles: Integer; begin Clipboard.Open; try f := Clipboard.GetAsHandle( CF_HDROP ) ; If f <> 0 Then Begin numFiles := DragQueryFile( f, $FFFFFFFF, nil, 0 ) ; for i:= 0 to numfiles - 1 do begin buffer[0] := #0; DragQueryFile( f, i, buffer, sizeof(buffer)) ; Image1.Picture.LoadFromFile(buffer); end; end; finally Clipboard.close; end; end;
不能自动调整大小,就改了一下:var Bitmap:TBitmap; begin Image1.AutoSize:=True; if Clipboard.HasFormat(CF_BITMAP) then begin Bitmap:=TBitmap.Create; Bitmap.Assign(Clipboard); Image1.Picture.Bitmap:=Bitmap; FreeAndNil(Bitmap); end; end;
试过可以。按钮事件的代码都给你了,不行自己检查一下: procedure TForm1.Button1Click(Sender: TObject); var Bitmap:TBitmap; begin Image1.Stretch:=True; if Clipboard.HasFormat(CF_BITMAP) then begin Bitmap:=TBitmap.Create; Bitmap.Assign(Clipboard); Image1.Picture.Bitmap:=Bitmap; FreeAndNil(Bitmap); end; end;
var Bitmap:TBitmap;
begin
if Clipboard.HasFormat(CF_BITMAP) then
begin
Bitmap:=TBitmap.Create;
Bitmap.Assign(Clipboard);
Image1.Canvas.Draw(0,0,Bitmap);
FreeAndNil(Bitmap);
end;
end;
var
f: THandle;
buffer: Array [0..MAX_PATH] of Char;
i, numFiles: Integer;
begin
Clipboard.Open;
try
f := Clipboard.GetAsHandle( CF_HDROP ) ;
If f <> 0 Then
Begin
numFiles := DragQueryFile( f, $FFFFFFFF, nil, 0 ) ;
for i:= 0 to numfiles - 1 do
begin
buffer[0] := #0;
DragQueryFile( f, i, buffer, sizeof(buffer)) ;
Image1.Picture.LoadFromFile(buffer);
end;
end;
finally
Clipboard.close;
end;
end;
你这个好像只能是bmp格式的jpg的不行啊?liangqingzhi(老之):
你这个jpg,bmp的都行
不过粘贴上的图像不能自动调整大小,就是如果复制的图像比较大,粘贴的时候就只有一部分显示,有办法解决么?
begin
Image1.AutoSize:=True;
if Clipboard.HasFormat(CF_BITMAP) then
begin
Bitmap:=TBitmap.Create;
Bitmap.Assign(Clipboard);
Image1.Picture.Bitmap:=Bitmap;
FreeAndNil(Bitmap);
end;
end;
你这样是可以了,不过我是想调整到最合适的大小
就是image是5*5大小的,图片如果是8*8,那就缩小点,image还是5*5大小的
你写的image也变大了
本来stretch为ture就应该行,不过改了也没效果
不知道有什么方法没?
你说的方法我试了怎么不行啊?
没变化的,你试过行么?
procedure TForm1.Button1Click(Sender: TObject);
var Bitmap:TBitmap;
begin
Image1.Stretch:=True;
if Clipboard.HasFormat(CF_BITMAP) then
begin
Bitmap:=TBitmap.Create;
Bitmap.Assign(Clipboard);
Image1.Picture.Bitmap:=Bitmap;
FreeAndNil(Bitmap);
end;
end;