Rəylər

Delphi-də formaları necə yaratmaq, istifadə etmək və bağlamaq

Delphi-də formaları necə yaratmaq, istifadə etmək və bağlamaq

Delphi-də hər bir layihənin ən azı bir pəncərəsi var - proqramın əsas pəncərəsi. Delphi tətbiqinin bütün pəncərələri TForm obyektinə əsaslanır.

Forma

Form obyektləri bir Delphi tətbiqinin əsas tikinti bloklarıdır, tətbiqi işlədərkən istifadəçinin qarşılıqlı olduğu həqiqi pəncərələr. Formaların öz xüsusiyyətləri, hadisələri və görünüşləri və davranışlarına nəzarət edə biləcəyiniz metodlar var. Bir forma əslində Delphi komponentidir, lakin digər komponentlərdən fərqli olaraq bir forma komponent palitrasında görünmür.

Adətən yeni bir tətbiqə (Fayl | Yeni Tətbiq) başlayaraq bir forma obyekti yaradırıq. Bu yeni yaradılan forma, bir qayda olaraq, tətbiqin əsas forması - iş vaxtında yaradılan ilk forma olacaqdır.

Qeyd: Delphi layihəsinə əlavə bir forma əlavə etmək üçün Fayl | Yeni Forma seçin.

Doğuş

OnCreate
Bir TForm ilk dəfə yaradıldıqda, yəni yalnız bir dəfə OnCreate hadisəsi atəşə tutulur. Formanın yaradılması üçün cavabdeh olan məlumat layihənin mənbəyindədir (forma layihə tərəfindən avtomatik olaraq qurulacaqsa). Bir forma yaradıldıqda və onun Görünən xassəsi Doğrudursa, sadalanan qaydada aşağıdakı hadisələr baş verir: OnCreate, OnShow, OnActivate, OnPaint.

Siz OnCreate hadisə idarəedicisini istifadə etməlisiniz, məsələn, satır siyahılarını ayırmaq kimi başlama işləri.

OnCreate hadisəsində yaradılan hər hansı bir obyekt OnDestroy hadisəsi ilə azad edilməlidir.

OnCreate -> OnShow -> OnActivate -> OnPaint -> OnResize -> OnPaint ...

OnShow
Bu hadisə formanın nümayiş olunduğunu göstərir. OnShow bir forma görünməzdən əvvəl çağırılır. Əsas formalardan başqa, bu hadisə Forma Görünən mülkü Həqiqi təyin etdikdə və ya Şou və ya ShowModal metodu adlandırdığımız zaman olur.

Aktivləşdirin
Bu hadisə proqram formanı aktivləşdirdikdə - yəni forma giriş fokusunu aldıqda deyilir. İstədiyiniz deyilsə, əslində hansı diqqəti yönəldəcəyinizi dəyişdirmək üçün bu hadisədən istifadə edin.

OnPaint, OnResize
OnPaint və OnResize kimi hadisələr həmişə forma əvvəl yaradıldıqdan sonra çağırılır, eyni zamanda dəfələrlə çağırılır. OnPaint, formada hər hansı bir nəzarət rənglənmədən əvvəl baş verir (şəkildəki xüsusi rəngləmə üçün istifadə edin).

Həyat

Bir formanın doğulması, həyatı və ölümü ola biləcəyi qədər maraqlı deyil. Formanız yaradıldıqda və bütün idarəetmə tədbirlərin idarə olunmasını gözləyirsə, kimsə formanı bağlamağa çalışana qədər proqram işləyir!

Ölüm

Bir hadisə idarə edən bir tətbiq, bütün formaları bağlandıqda və heç bir kod icra edilmədikdə dayandırır. Son görünən forma bağlandıqda gizli bir forma hələ də mövcuddursa, tətbiqiniz bitmiş kimi görünür (çünki heç bir forma görünmür), amma əslində bütün gizli formalar bağlanana qədər davam edəcəkdir. Əsas formanın erkən gizləndiyini və bütün digər formaların bağlandığını düşünün.

… OnCloseQuery -> OnClose -> OnDeaktiv et -> OnHide -> OnDestroy

OnCloseQuery
Bağlamaq metodu və ya başqa üsullarla (Alt + F4) istifadə edərək formanı bağlamağa çalışdığımızda OnCloseQuery hadisəsi çağırılır. Beləliklə, bu hadisə üçün hadisə idarəedicisi bir formanın bağlanmasına mane olmaq və qarşısını almaq üçün bir yerdir. OnCloseQuery-dən istifadəçilərdən formanın bağlanmasını istədiklərinə əmin olduqlarını soruşmaq üçün istifadə edirik.

proseduru TForm1.FormCloseQuery (Göndərən: TObject; var CanClose: Boolean);

başlamaq

  əgər MessageDlg ('Həqiqətən bu pəncərəni bağlayın?', MtConfrification, mbOk, mbCancel, 0) = mrCancel sonra CanClose: = Yalan;

son;

OnCloseQuery hadisə idarəedicisi, bir formanın bağlanmasına icazə verildiyini müəyyənləşdirən CanClose dəyişənini ehtiva edir. OnCloseQuery hadisə idarəedicisi CloseQuery dəyərini False (CanClose parametri vasitəsi ilə) təyin edərək Close metodunu ləğv edə bilər.

OnClose
OnCloseQuery formanın bağlanmalı olduğunu göstərirsə, OnClose hadisəsi çağırılır.

OnClose hadisəsi, formanın bağlanmaması üçün son bir şans verir. OnClose hadisə idarəedicisi aşağıdakı dörd mümkün dəyərə malik bir fəaliyyət parametrinə malikdir:

  • caNone. Formanın bağlanmasına icazə verilmir. Sanki CanClose'u OnCloseQuery'də False təyin etdik.
  • caHide. Formanı bağlamaq əvəzinə gizlədirsən.
  • caFree. Forma bağlıdır, buna görə ayrılmış yaddaş Delphi tərəfindən sərbəst buraxılır.
  • caMinimize. Forma qapalı deyil, minimuma endirilir. Bu MDI uşaq formaları üçün standart hərəkətdir. Bir istifadəçi Windows-u bağladıqda OnCloseQuery hadisəsi OnClose deyil, aktiv olur. Windows'un bağlanmasının qarşısını almaq istəyirsinizsə, kodunuzu OnCloseQuery hadisə idarəedicisinə qoyun, əlbəttə CanClose = False bunu etməyəcəkdir.

OnDestroy
OnClose metodu işləndikdən və forma bağlanandan sonra OnDestroy hadisəsi çağırılır. Bu hadisəni OnCreate hadisəsində olanların əksinə əməliyyatlar üçün istifadə edin. OnDestroy, forma ilə əlaqəli obyektləri ayırmaq və müvafiq yaddaşı azad etmək üçün istifadə olunur.

Bir layihə üçün əsas forma bağlandıqda, ərizə ləğv olunur.