Przejdź do zawartości

Delphi/Bitmapy - rozwiązanie

Z Wikibooks, biblioteki wolnych podręczników.

Rozwiązanie zadania

[edytuj]

Ten 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.

(powrót do kursu)