MainFormof aplikasi Delphi adalah formulir (jendela) yang merupakan yang pertama dibuat di badan utama aplikasi. Jika Anda perlu menerapkan semacam otorisasi untuk aplikasi Delphi Anda, Anda mungkin ingin menampilkan dialog login / kata sandi sebelum formulir utama dibuat dan ditampilkan kepada pengguna. Singkatnya, idenya adalah membuat, menampilkan, dan menghancurkan dialog "login" sebelum membuat formulir utama.
MainForm Delphi
Ketika proyek Delphi baru dibuat, "Form1" secara otomatis menjadi nilai properti MainForm (global Aplikasi obyek). Untuk menetapkan formulir berbeda ke properti MainForm, gunakan halaman Formulir di Proyek> Opsi kotak dialog pada waktu desain. Ketika formulir utama ditutup, aplikasi berakhir.
Login / Kata Sandi Dialog
Mari kita mulai dengan membuat bentuk utama aplikasi. Buat proyek Delphi baru yang berisi satu formulir. Bentuk ini, dengan desain, bentuk utama.
Jika Anda mengubah nama formulir menjadi "TMainForm" dan menyimpan unit sebagai "main.pas," the kode sumber proyek terlihat seperti ini (proyek disimpan sebagai "PasswordApp"):
program PasswordApp;
menggunakan
Formulir,
utama di 'main.pas' {MainForm};
{$ R * .res}
mulai
Aplikasi. Inisialisasi;
Aplikasi. CreateForm (TMainForm, MainForm);
Aplikasi. Lari;
akhir.
Sekarang, tambahkan formulir kedua ke proyek. Sesuai desain, formulir kedua yang ditambahkan akan didaftar di daftar "Buat Formulir Otomatis" pada dialog Opsi Proyek.
Beri nama formulir kedua "TLoginForm" dan hapus dari daftar "Buat Formulir Otomatis". Simpan unit sebagai "login.pas".
Tambahkan Label, Edit, dan Tombol pada formulir, diikuti oleh a metode kelas untuk membuat, menampilkan, dan menutup dialog login / kata sandi. Metode "Execute" mengembalikan true jika pengguna telah memasukkan teks yang benar di kotak kata sandi.
Berikut kode sumber lengkap:
satuan Gabung;
antarmuka
menggunakan
Windows, Pesan, SysUtils, Varian, Kelas,
Grafik, Kontrol, Bentuk, Dialog, StdCtrls;
Tipe
TLoginForm = kelas(TForm)
LogInButton: TButton;
pwdLabel: TLabel;
passwordEdit: TEdit;
prosedur LogInButtonClick (Pengirim: TObject);
fungsi publicclass Jalankan: boolean;akhir;
penerapan{$ R * .dfm}
fungsi kelas TLoginForm. Jalankan: boolean;mulai dengan TLoginForm. Membuat(nol) dotry
Hasil: = ShowModal = mrOk;
akhirnya
Gratis;
akhir; akhir;
prosedur TLoginForm. LogInButtonClick (Pengirim: TObject); beginif passwordEdit. Text = 'delphi' kemudian
ModalResult: = mrOK
lain
ModalResult: = mrAbort;
akhir;
akhir.
Metode Jalankan menciptakan secara dinamis turunan dari TLoginForm dan menampilkannya menggunakan ShowModal metode. ShowModal tidak kembali sampai formulir ditutup. Ketika formulir ditutup, ia mengembalikan nilai ModalResult Properti.
Event handler "LogInButton" OnClick memberikan "mrOk" ke properti ModalResult jika pengguna telah memasukkan kata sandi yang benar (yaitu "delphi" pada contoh di atas). Jika pengguna memberikan kata sandi yang salah, ModalResult diatur ke "mrAbort" (bisa apa saja kecuali "mrNone").
Menetapkan nilai ke properti ModalResult menutup formulir. Jalankan mengembalikan true jika ModalResult sama dengan "mrOk" (jika pengguna telah memasukkan kata sandi yang benar).
Jangan Membuat MainForm Sebelum Masuk
Anda sekarang hanya perlu memastikan formulir utama tidak dibuat jika pengguna gagal memberikan kata sandi yang benar.
Begini tampilan kode sumber proyek:
program PasswordApp;
menggunakan
Formulir,
main di 'main.pas' {MainForm},
login di 'login.pas' {LoginForm};
{$ R * .res}
mulai jika TLoginForm. Menjalankan maka mulailah
Aplikasi. Inisialisasi;
Aplikasi. CreateForm (TMainForm, MainForm);
Aplikasi. Lari;
endelsebegin
Aplikasi. MessageBox ('Anda tidak diizinkan untuk menggunakan aplikasi ini. Kata sandinya adalah "delphi". ',' Aplikasi Delphi Dilindungi Kata sandi ');
akhir; akhir.
Perhatikan penggunaan jika kemudian yang lain blokir untuk menentukan apakah bentuk utama harus dibuat. Jika "Execute" mengembalikan false, MainForm tidak dibuat dan aplikasi berhenti tanpa memulai.