Procedura zagnieżdżona i dostęp do pól Edit formularza

0

Witajcie, chcę zrobić formularz z dwoma polami Edit, do których będą wpisywane liczby rzeczywiste i jedno pole Edit na wyniki.
Napisałem procedurę sprawdzającą poprawność danych i wykonującą pewne działania arytmetyczne na podstawie danych pobranych z pól Edit. Procedura ta ma być uruchamiana przy zdarzeniu OnExit. Generalnie chodzi o to by zmiana danych w którymkolwiek z pól Edit skutkowała przy zdarzeniu OnExit aktualizacją wyniku.
Wszystkie pola zdefiniowane są w klasie
TForm1 = class(TForm)
i tak pola Edit zadeklarowane są jako
Edit_1_x: TEdit;
Edit_2_y: TEdit;
natomiast procedury zdarzeniowe
procedure Edit_1_xExit(Sender: TObject);
procedure Edit_2_yExit(Sender: TObject);
Właśnie w powyższej procedurze chcę zagnieździć procedurę Oblicz sprawdzającą poprawność danych i wykonującą działania arytmetyczne.
Procedurę zadeklarowałem w klasie TForm1 jako
procedure Oblicz
a jej wywołanie umieściłem w procedurach Edit_1_xExit, Edit_2_yExit.
Jednak teraz procedura zagnieżdżona nie widzi pól Edit na formularzu. Wywołanie typu:
x := StrToFloat(Edit_1_x.Text); y := StrToFloat(Edit_2_y.Text);
nie widzi pól Edit_1_x, Edit_2_y.
I tu moje pytania:

  1. Czy procedura zagnieżdżona Oblicz jest dobrze zadeklarowana?
  2. Czy odwołanie do pól formularza z poziomu zagnieżdżonej procedury nie powinny być realizowane w inny sposób? Wskaźniki?
  3. Czy zamiast procedury nie powinna być użyta funkcja?
  4. Może ktoś ma sugestie jak rozwiązać ten problem?
    Pytania wynikają oczywiście z braków w mojej wiedzy. Proszę chociaż o wskazanie kierunku poszukiwania rozwiązania.
0

kilka kontrolek może dzielić się tą samą procedurą obsługi zdarzenia. zapewne to jest właśnie to, czego potrzebujesz.

Czy odwołanie do pól formularza z poziomu zagnieżdżonej procedury nie powinny być realizowane w inny sposób?
odwołania w procedurze zdarzenia do kontrolki która zdarzenie wywołała, powinny być realizowane przez parametr Sender.

1 użytkowników online, w tym zalogowanych: 0, gości: 1