TCanvas сохранение изображения

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by ky_kask, 28 Nov 2009.

  1. ky_kask

    ky_kask Member

    Joined:
    18 Nov 2009
    Messages:
    74
    Likes Received:
    81
    Reputations:
    6
    Кто-нибудь знает как можно сохранить изображение из TForm.Canvas в файл?

    код:
    Code:
    procedure TForm1.Button1Click(Sender: TObject);
    var Bitmap:Tbitmap;  MyRect,MyOther: TRect;
    begin
    Bitmap:=Tbitmap.Create;
    MyRect:=Rect(0,0,100, 200);
    MyOther := Rect(0,0,100, 200);
    Bitmap.Width:=100;
    Bitmap.Height:=200;
    Bitmap.Canvas.CopyRect(MyOther, Form1.Canvas, MyRect);
    Bitmap.SaveToFile('ok.bmp');
    Bitmap.Free;
    end;
    
    подобный код не подходит совершенно. Т.к. при перекрытии формы другим окном в файл сохраняется совсем не TCanvas моей формы, а скриншот части экрана. Есть ли вообще возможность сохранения изображения именно своей формы, а не участков экрана?
     
  2. Proger10

    Proger10 Member

    Joined:
    19 Dec 2008
    Messages:
    80
    Likes Received:
    7
    Reputations:
    0
    Code:
    procedure TForm1.Button1Click(Sender: TObject);
    var
      BMP: TBitmap;
    begin
      BMP:=TBitmap.Create;
      BMP.Height:=Form1.Height;
      BMP.Width:=Form1.Width;
      BMP.Canvas.CopyRect(BMP.Canvas.ClipRect, Form1.Canvas, Form1.Canvas.ClipRect);
      BMP.SaveToFile('C:\bmp.bmp');
      BMP.Free;
    end;
    
    Хм... Странно! А у меня это работает!!