Wydział Transportu P.W.
Laboratorium z informatyki sem.il / ćw.3 Zadanie:
Rozbudować utworzoną na poprzednich zajęciach aplikację Delphi:
• dodać trzecią grupę poleceń menu obliczających wartości funkcji o dwóch parametrach oraz okno edycyjne do wpisywania drugiego parametru;
• dostosować układ formularza do rodzaju wykonywanych poleceń (funkcje jedno- lub dwuargumentowe). Wyniki należy wyświetlać na etykiecie zieloną czcionką, gdy wynik jest zerowy, a czerwoną gdy wynik jest ujemny. Dodatnie wartości wyniku mają być wyświetlane zwykłym kolorem czcionki.
Skopiuj do foldera BZ na dysku D: aplikację utworzoną na ćw.2, która znajduje się w folderze sieciowym Informatyka na NoveIl 411..A INF2\ L2 (4 pliki z rozszerzeniem .dpr, .dfm, .pas i .res).
W edytorze programu Delphi, otwórz skopiowany projekt przyciskiem ^ ■•. Zmień tytuł formy na Funkcje jedno- i dwuargumentowe
/
1.
2.
II
1.
2.
3.
4.
III
1.
W części implementacyjnej modułu zadeklaruj metodę formy w postaci funkcji boolowskiej, która czyta liczbę całkowitą z pola edycyjnego. Wartość przeczytanej liczby jest przekazywana przez parametr c typu Integer. Funkcja zwraca wartość True, jeśli pomyślnie przeczytano daną. W przeciwnym wypadku funkcja zwraca False, a w polu edycyjnym wyświetla komunikat o błędzie: function TForml.CzytajC(e: TEdit; var c: Integer): Boolean; begin
try //próba zamiany tekstu na liczbę całkowitą
c:=StrToInt(e.Text); Result:=True; except // w przypadku błędu będą wykonane poniższe instrukcje
Blad; Result:= False; end; end;
Pamiętaj o umieszczeniu nagłówka funkcji w części private definicji formy.
Analogicznie zadeklaruj funkcję o nazwie Czytaj R z drugim parametrem r typu Real, która czyta liczbę rzeczywistą, konwertując tekst z okna edycyjnego e za pomocą funkcji StrToFloa t.
Dodaj do formy drugie pole edycyjne kopiując i wklejając pole obecne na formie.
Otwórz edytor menu dwukrotnie klikając w komponent MainMenul. Dodaj nowe menu z tytułem Funkcje &dwuargumentowe, a w nim polecenie z tytułem I&loczyn i skrótem Ctrl+L.
Utwórz procedurę obsługi kliknięcia dla polecenia liczenia iloczynu. Zadeklaruj zmienne lokalne x, y typu rzeczywistego i wpisz treść procedury:
if CzytajR(Editl,x) and CzytajR(Edit2,y) then PiszWynik(Editl.Text+' * ' + Edit2.Text, x*y);
Wybierz polecenie menu Tools|Debugger Options. Na zakładce Language Exceptions usuń zaznaczenie Stop on Delphi exceptions. Skompiluj i uruchom program, sprawdź jego działanie.
Dodaj etykietę oraz dwa przyciski typu TSpeedButton lilii z zakładki Additional palety
komponentów.
Zaznacz oba przyciski i nadaj wartość 1 ich właściwości GroupIndex.
Zaznacz pierwszy przycisk, w Inspektorze Obiektów ustaw jego właściwość Down na wartość True.
Rozmieść nowe komponenty i nadaj im właściwości Caption jak na iysunku.
Ponownie zaznacz oba przyciski. Korzystając z zakładki Events Inspektora Obiektów utwórz dla nich procedurę obsługi kliknięcia o nazwie SpeedButtonClick oraz następującej treści: prQcedure TForml.SpeedButtonClick(Sender: TObject); begin
Edit2.Visible:= SpeedButton2.Down;
Funkcj edwuargumentowel.Enabled:= SpeedButton2.Down;
Funkcjell.Enabled:= SpeedButtonl.Down;
Funkcj e21.Enabled:= SpeedButtonl.Down; end;
)
i
2.