32. Jak przekazać informacje z formularza typu dialog do procedury?

Formularze otwierane w trybie dialog charakteryzują się tym, że wstrzymują dalsze wykonywanie procedury do czasu, aż zostaną zamknięte. To bardzo użyteczna rzecz, na tej zasadzie działają także systemowe okno OtworzPlik lub zwykły MsgBox. W naszym przypadku, gdy korzystamy z własnego formularza dialogowego pojawia się jednak pewien problem... Jak mamy w dalszej części procedury odczytać informacje z naszego formularza, jeśli wcześniej musieliśmy go zamknąć?

W skrócie problem można zilustrować tak:
1 - start procedury
2 - procedura otwiera formularz w trybie dialog
3 - pracujemy na formularzu (procedura jest zatrzymana i czeka na zamknięcie dialogu)
4 - zamknęliśmy formularz i procedura 'leci' dalej (problem: jak teraz odczytać co ustawiliśmy na formularzu?)
5 - zamykamy procedurę.

Odpowiedź na pytanie zawarte w punkcie 4 okazuje się dość prosta, ale wymaga pomysłu. W moim przypadku wykorzystałem pewne spostrzeżenie... Zauważyłem, że jeśli formularza dialogowego nie zamkniemy, ale tylko go ukryjemy, to procedura wykonuje się dalej. I już rozwiązanie nasuwa się samo, wystarczy tylko zmodyfikować ostatnie punkty naszej ilustracji:
4 - ukryliśmy formularz i procedura 'leci' dalej (teraz swobodnie możemy odczytać co ustawiliśmy na formularzu?)
5 - zamykamy formularz
6 - zamykamy procedurę

Jak to wygląda na przykładzie, można obejrzeć tutaj.

Zobacz też inne rozwiązanie tego problemu dostępne na tej stronie  - patrz dział Warsztat (Własny InputBox).

Krzysztof Pozorek