Scrierea componentelor lor pentru delphi

Când creați propriile componente dezvoltator aproape întotdeauna se confruntă cu necesitatea de a oferi reacția lor la diferite acțiuni (modificări ale valorilor de proprietate, de asteptare metode).

Pentru a rezolva această problemă este un mecanism de eveniment. Pe parcursul dezvoltării unor acțiuni specifice efectuate cu componenta, comparat evenimentele relevante. Cel mai simplu exemplu - eveniment OnClick, care a cartografiat click de mouse pe componenta.

Aceste evenimente pot fi handler implicit (a se vedea. Partea 1) și nu le-au deloc. Apoi, tratamentul lor este condusă în întregime de către programator folosind componenta.

Elementele de bază de a crea propriile evenimente

Pentru o descriere a evenimentelor Delphi, un tip special de date TNotifyEvent. Acest tip de procedură, care face parte din marea majoritate a manipulare eveniment. acest tip de procedură, luând un singur argument - obiectul care a cauzat evenimentul.

eveniment propriu constă din trei părți principale:

  • tipaTNotifyEvent câmp închis;
  • Deschideți pentru citire și scriere același tip de proprietate pentru procesorul scop. Se recomandă să anunțe această proprietate este publicată secțiune, handlerul pot fi create folosind Object Inspector;
  • Apel eveniment atunci când modificați proprietățile sau performanțele oricărei acțiuni.

Contingențe pot fi împărțite în două grupe:

  • Evenimente atunci când se solicită metode (punerea în aplicare a acțiunii);
  • Evenimente la schimbarea valorilor de proprietate.
Un exemplu de implementare a evenimentelor de apel al metodei

Creați două evenimente personalizate, care va avea loc atunci când scrieți într-un fișier:

  • Eveniment înainte de a fi stocate în fișierul jurnal (OnBeforeWriting);
  • Eveniment după ce salvați fișierul log (OnAfterWriting).

Creați un câmp închis pentru aceste evenimente:

După aceea, programul poate ocupa un eveniment atunci când schimbați calea către fișierul istoric.

Mecanismul evenimentului Descrierea de mai sus este standard pentru toate componentele Delphi, indiferent de bibliotecă (VCL, FireMonkey) .Se este disponibil pentru orice suport acceptate.

Cu toate acestea, trebuie să plătească pentru universalitatea faptului că evenimentul descris ca TNotifyEvent nu se poate ocupa mai mult de un argument, ceea ce face dificil de a crea un eveniment pentru procesarea logicii program complex. Dar, această problemă are o soluție simplă și elegantă - descrie propriul tip de procedură pentru eveniment.

Descrie stilul tau, puteți crea evenimente de acest tip la fel ca la TNotifyEvent.

Să creeze un „eveniment non-standard“ este precedată de o componentă de schimbare de proprietăți FILEPATH discutate mai sus. În acest caz, în plus față de obiectul care a provocat evenimentul se va transfera la un nou drum către fișierul jurnal.

Declararea corespunzătoare tipului de procedură: