parametru Expeditor în Delphi-programul prezent în fiecare caz handler oricărei componente. Cu toate acestea, deoarece utilizarea parametrului expeditorului nu este de multe ori este necesar, începătorii despre el „uita“ și de multe ori nu sunt nici măcar conștienți de scopul său. În acest articol vreau să vorbesc despre, care este parametrul Expeditor Delphi și modul de a lucra cu acest lucru, așa cum se dovedește, o opțiune importantă și convenabilă ca expeditor.
Expeditor TObject are un tip și o valoare a obiectului - sursa de tratare a evenimentului în care este utilizat. Adică, dacă forma este mai mult aceleași componente, în afară îndeplinind aceeași funcție, nu este necesar pentru fiecare dintre ele pentru a crea proceduri proprii, manipulare eveniment. Este doar un singur set de manipulare, dar pentru a afla, la orice evenimente legate de componente sunt tratate chiar acum, acesta va permite parametrul Expeditor.
dacă Expeditor = Button1
apoi Caption: 'Făcând clic pe №1' =
altceva Legendă: 'Făcând clic pe №2' =;
Programul va arăta ce fel de buton a fost apasat. Dar știind acest lucru, este posibil să se asigure o reacție suplimentară a programului.
Asta nu e tot! Lucrul cu parametrul expeditor, puteți face chiar și fără a găsi numele componentei sursă. De exemplu, problema este aceasta: trebuie să urmeze proprietatea Text de mai multe componente de Editare, precum și apariția oricăruia dintre aceste caractere „“ (virgula) să-l pentru a schimba „“ (Dot). Creați un handler pentru evenimentul onchange pentru unul dintre Edit'ov, iar restul pur și simplu harta pe la fel ca în cazul precedent:
În primul rând, observăm că cuvântul edit1 scris de mai multe ori, care este, de fapt inutile. Cu ajutorul conexiunii operatorului cu a scăpa de necesitatea de a scrie edit1 în cadrul operatorilor:
Totul! Acum, în scopul de a scăpa de virgule în toate Edit'ah, trebuie să fie înlocuit în legătură declarație edit1 privind (Sender ca tEditează) - mai bine ca aceasta, în paranteze.
Faptul că structura (Sender ca TObject) vă permite să lucrați cu sursa evenimentelor ca obiect corespunzător. În special, în cazul în care după (Sender ca tEditează) pentru a pune capăt, Delphi ne va da o listă de proprietăți și metode Editare componente. Cu toate că, în logica mea personală, în loc de (Sender ca tEditează) ar fi pur și simplu Expeditor. Dar nu, este imposibil.
Acum ați înțeles de ce ne-am scăpat de operatori edit1 în interiorul - pentru a înlocui fiecare edit1 (Sender ca tEditează) ar fi dificil!
În cele din urmă, este uneori necesar să se afle nu numele și tipul sursei evenimentului. Acest ajutor este operatorul. prin care parametrul Expeditor poate fi comparat cu un tip Delphi:
dacă (Expeditor este TButton)
apoi Legendă: „Sursa evenimentului - TButton butonul“ =;
Apropo, despre metoda de înlocuire utilizată deasupra punctului la fața locului. În loc de a le înlocui în linia de text, mult mai ușor de a face acest lucru drept „on the fly“ folosind onkeypress procedură:
Procedura TForm1.Edit1KeyPress (Expeditor: TObject; var cheie: Char);
începe
dacă key = '' atunci cheie: =; ''
se încheie;
De ce nu am folosi această metodă? Pentru că aici nu este utilizat parametrul Expeditor! Deși această procedură de lucru, de asemenea, va fi pentru toate componentele pentru care acesta este comparat. Dar, să învețe să vadă diferite posibilități, odată ce prima metodă este adecvată. Și, în general, să învețe.