1
Instrukcja 7a
Cel ćwiczenia : Napisanie aplikacji wyświetlającej przykładową kompozycję
graficzną. Geometria jeża.
Rys. 1 Widok formularza z umieszczonymi komponentami
1. Uruchomić Delphi.
2. Umieścić na formularzu komponent Image i ustawić następujące parametry:
• Width : 400
•
Height : 400
3. Umieścić na formularzu komponent GroupBox ( paleta Standard ). Własność Caption
ustawić na Dane.
4.
Na komponencie Groupbox1 umieścić 5 komponentów Edit i 5 komponentów Label.
Poszczególne własności ustawić zgodnie z tabelami.
Tabela własności dla komponentów Edit
Domyślma nazwa:
Name:
Text:
Edit1
En
150
Edit2
Efi
123
Edit3
Es
5
2
Edit4
Edfi
1
Edit5
Eds
2
Tabela własności dla komponentów Label
Domyślna nazwa:
Caption:
Label1
Liczba kroków - n:
Label2
Kąt obrotu - fi:
Label3
Długość kroku - s:
Label4
Przyrost kąta obrotu - dfi:
Label5
Przyrost długości kroku - ds:
5. Na formularzu umieścić komponent RadioGroup. Wybrać własność Items dla
RadioGroup1 i wpisać następujące pozycje:
linii
tła
Własność Columns ustawić na: 2, Caption na: Wybór koloru, ItemIndex na: 0
6. W części private klasy TForm1 umieścić deklaracje zmiennych:
clTla,clLinii : TColor;
7. Wygenerować zdarzenie OnCreate dla komponentu Form1 i wpisać następujący kod:
procedure TForm1.FormCreate(Sender: TObject);
begin
clTla:=clBlack;
clLinii:=clWhite;
end;
8. Umieścić komponent ColorDialog i Button. Dla przycisku własność Caption zmienić
na: Wybór koloru.
9. Utworzyć zdarzenie OnClick dla przycisku Button1 i wpisać kod:
procedure TForm1.Button1Click(Sender: TObject);
begin
if ColorDialog1.Execute then begin
case RadioGroup1.ItemIndex of
0 : clLinii := ColorDialog1.Color;
1 : clTla := ColorDialog1.Color;
end;
end;
end;
10. Umieścić kolejny komponent Button na formularzu, własność Caption ustawić na:
Rysuj, utworzyć zdarzenie OnClick i wpisać następujący kod rysujący:
procedure TForm1.Button2Click(Sender: TObject);
3
label et;
var
N,krok,X,Y,X0,Y0,ZX,ZY: Integer;
alfa,fi,dfi,s,ds,xp,yp,xn,yn: Real;
begin
n:=StrToInt(En.Text);
fi:=StrToFloat(Efi.Text);
dfi:=StrToFloat(Edfi.Text);
s:=StrToFloat(Es.Text);
ds:=StrToFloat(Eds.text);
with Image1.Canvas do begin
Brush.Color:=clTla;
Brush.Style:=bsSolid;
FillRect(Rect(0,0,Image1.Width,Image1.Height));
Pen.Color:=clLinii;
fi:=fi*Pi/180; dfi:=dfi*Pi/180;
ZX:=Image1.Width; ZY:=Image1.Height;
xp:=ZX/2; yp:=ZY/2;
X0:=Round(xp); Y0:=Round(yp);
krok:=0; alfa:=0;
MoveTo(X0,Y0);
et:
krok:=krok+1;
xn:=xp+s*Cos(alfa);
yn:=yp+s*Sin(alfa);
X:=Round(xn);
Y:=Round(ZY-yn);
LineTo(X,Y);
if krok<=N then begin
alfa:=alfa+fi+dfi;
if fi>2*Pi then fi:=fi-2*Pi;
xp:=xn; yp:=yn; s:=s+ds;
goto et;
end;
end;
end;
11. Skompilować i uruchomić program przyciskiem F9 na klawiaturze komputera.
4
Rys. 2 Uruchomiony program