Üç temel dialog event'i

Bir dialog açıldığında sırasıyla üç event tetiklenir:

  • BEFORE: dialog açıldığında ilk tetiklenen event; kontroller tanımlanmıştır ama dialog henüz görünür değildir.
  • AFTER: BEFORE'dan sonra çalışır, dialog hâlâ görünür değildir.
  • ONSHOW: AFTER'dan sonra, dialog kullanıcı arayüzünde göründüğünde tetiklenir.

Bu event'leri manuel olarak da çağırabilirsiniz — bir dialog metodunu çağırmaktan farkı yoktur:

THIS.AFTER();
THIS.ONSHOW();

CALL DIALOG ile dialog açmak

Bir transaction'ın ilk (start) dialog'u otomatik açılır; ikinci yöntem ise kod içinden CALL DIALOG komutuyla dialog açmaktır:

CALL DIALOG MYDIALOG;
CALL DIALOG MYDIALOG WITH LOCATION 10, 10 SIZE 400, 300;

CALL DIALOG çalıştığı metodun kodunu durdurur, yeni dialog kapatılana kadar bir sonraki satıra geçilmez — tıpkı arayüzlü bir fonksiyon çağrısı gibi düşünülebilir. Dialog kapatılınca çağıran metodun kalan kodu çalışmaya devam eder.

Dialog'u kapatmak: SHUTDOWN

SHUTDOWN;

SHUTDOWN en son açılan dialog'u kapatır ve bir önceki dialog'a döner. Kapatılan dialog, transaction'ın son dialog'uysa transaction da otomatik kapanır.

Kapanan dialog'un değişkenleri bellekte kalır

Bir dialog kapandığında, o dialog tarafından tanımlanan global değişkenler bellekten silinmez, erişilebilir kalmaya devam eder. Bu yüzden yeni değişken/kontrol isimleri seçerken önceden kapanmış dialog'larla isim çakışması olup olmadığını göz önünde bulundurmak gerekir.

Sonuç

Dialog akışını yönetirken üç şeyi hatırlamak yeterli: event sırası (BEFORE → AFTER → ONSHOW), CALL DIALOG'un kodu durdurup dialog kapanınca devam etmesi, ve SHUTDOWN ile geri dönüş. Kalan her şey bu üçünün üzerine kurulu.