clase de intercepție în delphi

Veți avea nevoie de o anumită componentă în Delphi, a pus tipul TButton. dar care va avea mai multe proprietăți și metode decât butonul standard? Cu experiență dezvoltatorii Delphi atunci când au nevoie componenta TSuperBtn. aplică două abordări pentru această problemă: în căutarea de soluții gata de petrecere VCL, sau pentru a crea propriile componente.

Ei bine, dacă nu trebuie să TSuperBtn am fost pe paleta de componente, și numai pentru această aplicație? Cum să obțineți TButton cu un număr mare de proprietăți și metode, dar nu TSuperBtn. Și TButton extinde capacitățile fără a fi nevoie de a crea o clasă moștenită, cu un alt nume?

Acest lucru se poate face prin intermediul unei clase auxiliare, ci o clasă de ajutor va conține numai proprietățile și metodele nou adăugate.

Cei mai mulți începători nu știu că ei pot crea propriile controale personalizate pe baza unui set existent de VCL, creând un așa-numita clasă Interceptor, care va avea același nume ca și clasa principală.

Interceptor clase Delphi

Codul de mai sus creează un ascultător pentru controlul clasa TButton. TButton original, a declarat în modulul StdCtrls biblioteca VCL.

Și cel mai important, clasele de module de interceptare trebuie declarate după transferul modulului de clasă de bază.

class EXEMPLU interceptor TButton = clasă (StdCtrls.TButton)

Aici este o clasă interceptor TButton.

Adăugați o nouă proprietate text. care va stoca șirul, precum și redefinirea procesului de click. care se va schimba eticheta butonului, precum și pentru a desfășura activitatea principală.

Acum plasați un buton de pe formular și adăugați modulul UNIT2 la finalul modulelor enumerate în clauza utilizări. cel mai important, că a fost după StdCtrls.

În forma de exemplu, am următorul cod:

Când executați programul și apăsați butonul, butonul se va schimba eticheta, și forma - titlul.

Utilizările claselor interceptoare pot fi mult, în funcție de nevoile și posibilitățile tale.

Ei bine, poate că e toate punctele principale discutate. Dacă cineva nu știa despre interceptarea claselor, apoi începe.

De asemenea, rețineți că acesta poate fi aplicat nu numai la componentele VCL, dar, de asemenea, pentru orice clase de Delphi.