如题
一个小程序,就一个image,还有个button
假如我复制了剪贴版中的图片,想按下button图片就粘贴到image上去了
该如何实现啊?
望大侠指教

解决方案 »

  1.   

    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;
      

  2.   

    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;
      

  3.   

    cuteant:
    你这个好像只能是bmp格式的jpg的不行啊?liangqingzhi(老之):
    你这个jpg,bmp的都行
    不过粘贴上的图像不能自动调整大小,就是如果复制的图像比较大,粘贴的时候就只有一部分显示,有办法解决么?
      

  4.   

    image1.proportional := true;
      

  5.   

    不能自动调整大小,就改了一下: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;
      

  6.   

    liangqingzhi(老之) :
    你这样是可以了,不过我是想调整到最合适的大小
    就是image是5*5大小的,图片如果是8*8,那就缩小点,image还是5*5大小的
    你写的image也变大了
    本来stretch为ture就应该行,不过改了也没效果
    不知道有什么方法没?
      

  7.   

    如果想按照Image的大小来显示图片,把那句Image1.AutoSize:=True;改成Image1.Stretch:=Ture就行了。
      

  8.   

    liangqingzhi(老之) :
    你说的方法我试了怎么不行啊?
    没变化的,你试过行么?
      

  9.   

    行了,是我autosize还是true没改过来
      

  10.   

    试过可以。按钮事件的代码都给你了,不行自己检查一下:
    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;