Sebagai seorang programmer Delphi, jika Anda ingin lebih meningkatkan level pemrograman Anda, Anda harus menguasai cara menulis kontrol. Artikel ini akan memperkenalkan beberapa metode dasar dan pola penulisan kontrol untuk pemula melalui contoh sederhana.
Contoh kontrol ini disebut TLeiLabel, dan menambahkan dua fungsi praktis berdasarkan TLabel: satu untuk membuat teks memiliki bentuk tiga dimensi, dan yang lainnya adalah membuat teks memiliki atribut hyperlink. Mari kita terapkan fungsi-fungsi ini selangkah demi selangkah.
1. Membuat teks berbentuk tiga dimensi
Pertama tentukan tipe T3DEffect dan atribut Style3D sebagai berikut:
T3DEffect=(Normal, Dinaikkan, Diturunkan, Dibayangi);
PROperty Style3D:T3Deffect baca FStyle3D tulis SetStyle3D default Normal;
Kemudian tentukan variabel secara pribadi: "FStyle3D:T3DEffect;" dan atur metode SetStyle3D() sebagai berikut.
prosedur TLeiLabel.SetStyle3D(Nilai: T3DEffect);
mulai
jika nilai FStyle3D <> maka
mulai
FStyle3D := nilai;
invalidate; //Menunjukkan bahwa kontrol akan digambar ulang
akhir;
akhir;
Selain itu, untuk teks dengan bayangan, offset bayangan, ShadeXOffSet dan ShadeYOffSet, harus ditentukan:
properti ShadowXOffSet: bilangan bulat baca FXOffSet tulis SetFXOffSet default 5;
properti ShadowYOffSet: bilangan bulat baca FYOffSet tulis SetFYOffSet default -5;
Metode penulisan SetFXOffSet() dan SetFYOffSet() mirip dengan SetStyle3D() di atas.
Untuk menggambar ulang kontrol, biasanya Anda perlu membebani metode Paint secara berlebihan. Di sini kita hanya menggambar ulang teksnya.
Deklarasi DoDrawText ditempatkan di Protected:
procedure DoDrawText(var Rect: TRect; Flags: Longint);
Di sini DoDrawText() menggambar teks yang berbeda menurut empat jenis (normal, timbul, tersembunyi, dan bayangan).
2. Membuat teks memiliki atribut hyperlink
Tentukan URL atribut untuk mewakili URL atau alamat email yang akan ditautkan.
URL Properti: String baca FURL tulis SetURL;
Tulis metode SetURL sebagai berikut:
procedure TLeiLabel.SetURL(Nilai: String);
Mulai
jika FURL <> Nilai maka FURL := Nilai ;
jika BULU <> ' maka
Kursor := crHandPoint;
akhir;
Saat mengklik Label ini, Anda perlu membuka browser atau alat pengiriman dan penerimaan email, yang memerlukan metode Klik yang membebani.
Klik Prosedur;
prosedur TLeiLabel.Klik;