Prosty kalkulator w Delphi

Napisanie prostego kalkulatora w Delphi nie jest rzeczą trudną. Powinien sobie z nią poradzić nawet początkujący programista. Tak więc wrzucamy na formę:

2 komponenty Edit
1 Button
22 etykiety (Label)


Rozmieszczamy je w następujący sposób: 2 pierwsze etykiety obok lub nad Edit`ami. Pod tym wstawiamy Button. Następnie z lewej strony formy wstawiamy Label3, a obok niego Label4. pod Label3 Label5 a obok Label6 i robimy tak aż do wyczerpania etykiet. Właściwości Caption pierwszych 2 etykiet zmieniamy na "Liczba a:" i "Liczba b:". Właściwość Text w polach Edit czyścimy tak, aby została pusta. Caption Button`a zmieniamy na "Licz", "Oblicz" czy jakoś podobnie. Etykietom po lewej stronie właściwość Caption ustawiamy kolejno na: "Suma=", "Różnica=", "Iloczyn=", "Iloraz=", "Kwadrat liczby a=", "Kwadrat liczby b=", "Wartość bezwzględna z liczby a=", "Wartość bezwzględna z liczby b=", "Przeciwna liczby a=" oraz "Przeciwna liczby b=". Etykiety z prawej pozostawiamy puste, tak jak pola Edit1 i Edit2. Teraz czas na procedurę. Klikamy więc 2 razy na Button i piszemy poniższy kod:

var a,b,c,d,e,f,g,h:Single;
begin
a:=StrToFloat(Edit1.Text); {pobranie liczby a z pola Edit1}
b:=StrToFloat(Edit2.Text); {pobranie liczby b z pola Edit2}
c:=a+b; {obliczenie sumy}
d:=a-b; {obliczenie różnicy}
e:=a*b; {obliczenie iloczynu}
f:=a/b; {obliczenie ilorazu}
g:=sqr(a); {obliczenie kwadratu liczby a}
h:=sqr(b); {obliczenie kwadratu liczby b}
Label4.Caption:=FloatToStrF(c, ffNumber, 32, 2); {wyświetlenie na etykiecie 4 sumy}
Label6.Caption:=FloatToStrF(d, ffNumber, 32, 2); {wyświetlenie na etykiecie 6 róznicy}
Label8.Caption:=FloatToStrF(e, ffNumber, 32, 2); {wyświetlenie na etykiecie 8 iloczynu}
Label10.Caption:=FloatToStrF(f, ffNumber, 32, 2); {wyświetlenie na etykiecie 10 ilorazu}
Label12.Caption:=FloatToStrF(g, ffNumber, 32, 2); {wyświetlenie na etykiecie 12 kwadratu liczby a}
Label14.Caption:=FloatToStrF(h, ffNumber, 32, 2); {wyświetlenie na etykiecie 14 kwadratu liczby b}
if a>0 then
Label16.Caption:=FloatToStrF(a, ffNumber, 32, 2) {wyświetl na etykiecie 16 |a|}
else
Label16.Caption:=FloatToStrF(-a, ffNumber, 32, 2); {wyświetl na etykiecie 16 |a|}
if b>0 then
Label18.Caption:=FloatToStrF(b, ffNumber, 32, 2) {wyświetl na etykiecie 18 |b|}
else
Label18.Caption:=FloatToStrF(-b, ffNumber, 32, 2); {wyświetl na etykiecie 18 |b|}
Label20.Caption:=FloatToStrF(-a, ffNumber, 32, 2); {wyświetl na etykiecie 20 przeciwną liczby a}
Label22.Caption:=FloatToStrF(-b, ffNumber, 32, 2); {wyświetl na etykiecie 22 przeciwną liczby b}
end;


Teraz klikamy na Edit1, w Inspektorze Obiektów przechodzimy na zakładkę Events i klikamy dwa razy na procedurę OnKeyPress. teraz wpisujemy taki kod:

begin
if Key=#13 then {jeśli wciśnięty klawisz to Enter}
Edit2.SetFocus; {uaktywnij pole Edit2}
end;


To samo robimy z polem Edit2 i w procedurze wpisujemy:

begin
if Key=#13 then {jeśli wciśnięty klawisz to Enter}
Button1.SetFocus; {uaktywnij przycisk Button1}
end;


Możemy teraz uruchomić program. Na obecną chwilę nie widzę żadnych błędów w kodzie.

Related Articles