Delphi/Bitmapy - rozwiązanie
< Delphi
Rozwiązanie zadania
edytujTen fragment programu, obsługujący zdarzenie OnClick przycisku (Button1) tworzy w pamięci bitmapę o rozmiarach 20x100, rysuje na niej elipsę i wstawia na formularz.
- procedure TForm1.Button1Click(Sender: TObject);
- var
- bitmapa: TBitmap;
- prostokat1, prostokat2: TRect;
- begin
- bitmapa:=TBitmap.Create;
- bitmapa.Width:=20; // szerokość bitmapy
- bitmapa.Height:=100; // wysokość bitmapy
- bitmapa.PixelFormat:=pf24bit; // 24 bity koloru
- bitmapa.Canvas.Pen.Color:=clRed; // kolor pióra na płótnie bitmapy
- bitmapa.Canvas.Pen.Width:=2; // grubość pióra na płótnie bitmapy
- prostokat1:=Rect(0,0,bitmapa.Width,bitmapa.Height);
- prostokat2:=Rect(100,100,100+bitmapa.Width,100+bitmapa.Height);
- bitmapa.Canvas.Ellipse(prostokat1); // rysowanie elipsy na płótnie bitmapy
- Canvas.CopyRect(prostokat2,bitmapa.Canvas,prostokat1); // wklejenie bitmapy do formularza
- bitmapa.Free;
- end;
Wszystkie operacje rysowania (oprócz linii z instrukcją Canvas.CopyRect(prostokat2,bitmapa.Canvas,prostokat1)) odbywają się na płótnie bitmapy.