я работаю над delphi 7 , и я хочу, как скопировать / назначить содержимое TpaintBox в Tbitmap?
как это
public
{ Public declarations }
BitMap : TBitmap;
end;
У меня есть Tbitmap, объявленный как public, и я создаю его на ForformCreate, как это
procedure TForm1.FormCreate(Sender: TObject);
begin
BitMap := TBitMap.Create;
end;
Затем я что-то рисую на растровом изображении, как это
procedure TForm1.DrawOnPainBox;
begin
If BitMap.Width <> PaintBox1.Width then BitMap.Width := PaintBox1.Width;
If BitMap.Height <> PaintBox1.Height then BitMap.Height := PaintBox1.Height;
BitMap.Canvas.Rectangle(0,0,random(PaintBox1.Width ),random(PaintBox1.Height));
PaintBox1.Canvas.Draw(0,0,BitMap);
end;
с помощью PaintBox1.Canvas.Draw(0,0,BitMap);
мы можем отобразить, что есть в растровом изображении, в ящик для рисования, но каков обратный путь?
как назначить / скопировать содержимое палитры в растровое изображение?
`BitMap:=PaintBox1.Canvas.Brush.Bitmap;`
это компилируется, но если я делаю это и снова вызываю procedure TForm1.DrawOnPainBox;
, я получаю access Violation
, и отладчик показывает bitmap
и PaintBox1.Canvas.Brush.Bitmap
, даже если на paintBox
нарисованы некоторые линии
![enter image description here](https://i.stack.imgur.com/bvFK3.jpg)
![enter image description here](https://i.stack.imgur.com/eqWBc.jpg)