MainFormof bir Delphi uygulaması, uygulamanın ana gövdesinde oluşturulan ilk formdur (pencere). Delphi uygulamanız için bir tür yetkilendirme uygulamanız gerekiyorsa, ana form oluşturulmadan ve kullanıcıya gösterilmeden önce bir oturum açma / parola iletişim kutusu görüntülemek isteyebilirsiniz. Kısacası, ana formu oluşturmadan önce "giriş" iletişim kutusunu oluşturmak, görüntülemek ve imha etmektir.
Delphi Ana Alanı
Yeni bir Delphi projesi oluşturulduğunda, "Form1" otomatik olarak MainForm özelliğinin (genel Uygulama nesne). MainForm özelliğine farklı bir form atamak için, Proje> Seçenekler zaman iletişim kutusu. Ana form kapandığında, uygulama sona erer.
Giriş / Şifre İletişim Kutusu
Uygulamanın ana formunu oluşturarak başlayalım. Bir form içeren yeni bir Delphi projesi oluşturun. Bu form, tasarım gereği ana formdur.
Formun adını "TMainForm" olarak değiştirir ve birimi "main.pas" olarak kaydederseniz, projenin kaynak kodu şuna benzer (proje "PasswordApp" olarak kaydedildi):
program PasswordApp;
kullanımları
Formlar,
ana içinde 'main.pas' {MainForm};
{$ R * .res}
başla
Uygulama. başlat;
Uygulama. CreateForm (TMainForm, MainForm);
Uygulama. Çalıştırmak;
son.
Şimdi, projeye ikinci bir form ekleyin. Tasarım gereği, eklenen ikinci form Proje Seçenekleri iletişim kutusundaki "Formları Otomatik Oluştur" listesinde listelenir.
İkinci formu "TLoginForm" olarak adlandırın ve "Formları Otomatik Oluştur" listesinden kaldırın. Birimi "login.pas" olarak kaydedin.
Forma bir Etiket, Düzenle ve Düğme ekleyin, ardından sınıf yöntemi giriş / şifre iletişim kutusunu oluşturmak, göstermek ve kapatmak için Kullanıcı, şifre kutusuna doğru metni girmişse, "Execute" yöntemi true değerini döndürür.
İşte tam kaynak kodu:
birim oturum aç;
arayüz
kullanımları
Windows, Mesajlar, SysUtils, Varyantlar, Sınıflar,
Grafikler, Kontroller, Formlar, Diyaloglar, StdCtrls;
tip
TLoginForm = sınıf(TForm)
LogInButton: TButton;
pwdLabel: TLabel;
passwordEdit: TEdit;
prosedürü LogInButtonClick (Gönderen: TObject);
publicclass işlevi Yürüt: boolean;son;
uygulama{$ R * .dfm}
sınıf işlevi TLoginForm. Yürüt: boolean;ile başlar TLoginForm. Oluşturmak(sıfır) dotry
Sonuç: = ShowModal = mrOk;
en sonunda
Bedava;
son; son;
prosedür TLoginForm. LogInButtonClick (Gönderen: TObject); beginif passwordEdit. Metin = 'delphi' sonra
ModalResult: = mrOK
Başka
ModalResult: = mrAbort;
son;
son.
Execute yöntemi dinamik olarak oluşturur TLoginForm örneği ve bunu kullanarak ShowModal yöntem. ShowModal, form kapanana kadar geri dönmez. Form kapandığında, ModalResult Emlak.
"LogInButton" OnClick olay işleyicisi, kullanıcı doğru şifreyi (yukarıdaki örnekte "delphi") girmişse ModalResult özelliğine "mrOk" atar. Kullanıcı yanlış bir şifre girmişse, ModalResult "mrAbort" olarak ayarlanmıştır ("mrNone" dışında herhangi bir şey olabilir).
ModalResult özelliğine bir değer ayarlamak formu kapatır. ModalResult "mrOk" değerine eşitse execute döndürür (kullanıcı doğru parolayı girmişse).
Giriş Yapmadan Önce MainForm Oluşturma
Artık yalnızca kullanıcı doğru parolayı sağlayamadıysa ana formun oluşturulmadığından emin olmanız gerekir.
Projenin kaynak kodu şöyle görünmelidir:
program PasswordApp;
kullanımları
Formlar,
main 'main.pas' {MainForm} içinde,
giriş 'login.pas' {LoginForm};
{$ R * .res}
beginif TLoginForm. gerçekleştirmek thenbegin
Uygulama. başlat;
Uygulama. CreateForm (TMainForm, MainForm);
Uygulama. Çalıştırmak;
endelsebegin
Uygulama. MessageBox ('Uygulamayı kullanma yetkiniz yok. Parola "delphi" dir. "," Parola Korumalı Delphi uygulaması ");
son; son.
Kullanım not eğer öyleyse başka ana formun oluşturulup oluşturulmayacağını belirlemek için engelle. "Execute" yanlış döndürürse, MainForm oluşturulmaz ve uygulama başlamadan sona erer.