Instrukcja 1a
Cel ćwiczenia: Napisanie aplikacji umożliwiającej wyświetlanie grafiki przy użyciu klasy TCanvas.
Rys.1 Widok formularza z umieszczonymi komponentami
Część I : Przygotowanie aplikacji
Uruchomić Delphi.
Na formatce umieścić komponent Image z palety komponentów Additional. Pozostawić domyślną nazwę Image1.
Dla komponentu Image1 ustawić następujące własności (w Object Inspector):
Width : 400
Height : 400
Umieścić na formatce komponent Button i ustawić własność Caption na Rysuj. Własność name pozostawić domyślną - Button1.
Wygenerować zdarzenie OnClick w zakładce Events - Object Inspector.
Rys. 2 Widok inspektora obiektów z zakładką Events
W zdarzeniu OnClick komponentu Button1 umieścić przykładowy kod rysujący:
with Image1.Canvas do begin
//kwadrat wypełniony kratą
Brush.Color:=clRed;
Brush.Style:=bsDiagCross;
Rectangle(10,10,200,200);
//elipsa
Brush.Color:=clBlue;
Brush.Style:=bsHorizontal;
Ellipse(50,300,350,350);
//przykładowy tekst
Font.Name:='Courier';
Font.Color:=clBlack;
Font.Size:=14;
Font.Style:=[fsBold,fsUnderLine];
TextOut(200,250,'Przykładowy tekst');
end;
Umieścić na formatce komponent Button i ustawić własność Caption na Czysc. Własność name pozostawić domyślną - Button2.
Wygenerować zdarzenie OnClick dla komponentu Button2 i umieścić następujący kod:
with Image1.Canvas do begin
Brush.Color:=clWhite;
Brush.Style:=bsSolid;
FillRect(Rect(0,0,Image1.Width,Image1.Height));
end;
Część II : Funkcja zoom
Umieścić dodatkowy komponent Image na formatce i ustawić następujące własności:
Height : 200
Width : 200
Własność name pozostawić domyślną - Image2.
Wygenerować zdarzenie OnMouseMove dla komponentu Image1 i wstawić do niego następujący kod:
Image2.Canvas.CopyRect(Rect(0,0,200,200),Image1.Canvas,Rect(x-20,
y-20,x+20,y+20));
Część III : Funkcja zapisywania obrazu do pliku
Z palety Dialogs wybrać i umieścić na formatce komponent SavePictureDialog.
Umieścić na formatce kolejny przycisk Button i ustawić własność Caption na Zapisz.
W zdarzeniu OnClick dla przycisku Zapisz wstawić następujący kod:
SavePictureDialog1.DefaultExt:='bmp';
if SavePictureDialog1.Execute then begin
Image1.Picture.SaveToFile(SavePictureDialog1.FileName);
end;
Skompilować i uruchomić program.
Rys.3 Uruchomiony program
1