Know-how, prelegere, oop - programare orientată pe obiecte

De cele mai multe ori se întâmplă ca în diferite componente să specificăm valorile inițiale în inspectorul de obiecte, ca în mod implicit, și apoi să schimbăm programele la cele necesare în timpul funcționării programului. În programul cu butonul de derulare, am setat butonul în poziția inițială, iar apoi, în timp ce programul funcționa, am schimbat proprietățile Stânga și Sus. Și când utilizatorul a introdus textul în componenta Editare. programul a schimbat proprietatea Text.







Deci, avem un obiect mai mult sau mai puțin decorat al unei persoane. Putem arunca o întreagă formă de astfel de obiecte utilizând componenta Componentă și vom crea un întreg oraș Chelov. Și fiecare completați proprietățile date în exemple, astfel încât toate obiectele să fie diferite, deși au provenit de la o componentă comună.

Să revenim la componentele reale. Luați componenta TEdit. Dacă abandonăm această componentă pe formular. atunci Delphi va seta automat proprietatea Nume la șirul Edit1. În viitor, vom face referire la acest obiect prin acest nume. Dacă, în inspectorul de obiecte, schimbăm proprietatea Nume de la Edit1 la, de exemplu, MyEdit. atunci nu va mai trebui să vă referiți la Edit1. ci pentru MyEdit. Să presupunem că am schimbat această proprietate. Nu uitați că proprietatea Nume este un șir de tip variabil.

Mai mult, în componenta TEdit ne interesează și alte câteva proprietăți. Acestea sunt proprietăți Stânga și Top. care au un tip întreg și asigură poziția componentei pe formular. Proprietatea stânga specifică în pixeli distanța de la marginea din stânga a formularului la componentă, iar proprietatea Top este aceeași distanță de la marginea superioară.

Există, de asemenea, proprietățile de lățime și înălțime ale componentei. Acestea sunt, de asemenea, tipuri întregi, indică valoarea în pixeli.

De asemenea, suntem interesați de proprietatea Text. Aceasta este o variabilă de șir. indică ce text este afișat în această componentă. Putem introduce textul în Inspectorul de obiecte în el, iar atunci când programul se execută, acesta va fi afișat imediat în câmpul de introducere. Mult mai des este lăsată goală. În inspectorul de obiecte, pur și simplu ștergeți această proprietate și puteți atribui în mod programatic un șir gol componentului:

Apoi, la momentul executării, utilizatorul introduce un text în Edit. Trebuie să procesăm acest text și îl putem accesa specificând numele obiectului și proprietatea acestuia:

În acest exemplu, am atribuit variabila s șir la textul care a fost stocat în prezent în câmpul de intrare al componentei Edit.

Amintiți-vă că atribuirea este de la stânga la dreapta, adică o variabilă este specificată mai întâi, căreia îi vom atribui o valoare, apoi este urmat semnul de atribuire ": =" urmat de valoarea pe care o atribuim acestei variabile.

Putem schimba programabil textul în acest obiect și în acest caz vom specifica o variabilă - proprietatea Text:

Obiectul nostru va afișa o linie cu text nou. În plus, putem modifica programatic alte proprietăți. De exemplu, proprietatea Stânga este poziția de la marginea din stânga a formularului. Putem specifica:







Dacă specificăm un astfel de text, de exemplu, în procedura de prelucrare a unui clic pe buton, atunci de fiecare dată când faceți clic pe un buton, obiectul MyEdit se va deplasa spre stânga cu 5 pixeli. Încercați-l singur! Creați o nouă aplicație. instalați componenta TEdit și butonul din formular. Dacă nu ați modificat proprietatea Nume. atunci va trebui să vă referiți la obiect după numele pe care l-a atribuit Delphi implicit:

Desigur, dacă nu scrieți un program de benzi desenate, atunci nu trebuie să schimbați poziția obiectelor, chiar dacă aveți astfel de oportunități. În plus, aveți posibilitatea de a schimba programatic proprietatea Numele obiectului, dar ar fi o greșeală brută - o dată adresa programului obiectului sub vechiul nume, atunci există o eroare a programului - pur și simplu nu a găsit obiectul. Puteți încerca în acest exemplu adăugând o linie:

De îndată ce apăsați butonul pentru prima dată, obiectul se va deplasa ascultător spre stânga și imediat după aceea va schimba numele. Încercați din nou, iar programul va atârna imediat - nu mai vede un obiect cu un nume nou, deoarece în codul de procesare a butonului se face trimitere la obiect cu numele vechi, iar obiectul cu acest nume nu mai există!

Nu vă faceți griji, nu sa întâmplat nimic teribil. Pur și simplu selectați Run-Program Reset din meniu. Acest lucru va determina încetarea programului înainte de program și închiderea acestuia.

Nu uitați încă despre ce: nu toate componentele care afișează text pe ecran au o proprietate a tipului de șir Text. De exemplu, într-o componentă TLabel, această proprietate este Caption. și dacă vrem să inserăm un text în inspectorul de obiect din inspectorul de obiecte, trebuie să îl introducem în proprietatea Caption. În mod similar, dacă vrem să modificăm programatic textul în obiectul Label1. apoi atribuim un nou text proprietății Caption:

Cu toate acestea, există obiecte și mai complicate. Luați, de exemplu, TMemo. Nu are proprietatea Text în inspectorul de obiecte, dar această proprietate este programabilă. Proprietatea variabilă Text a obiectului Memo1 conține tot textul, toate liniile care sunt în prezent în componentă. Cu toate acestea, proprietatea Lines este mai frecvent utilizată. Această proprietate nu mai este o variabilă de șir simplu. ci o gamă întreagă de rânduri, în care fiecare element conține o linie separată de text. Puteți spune că linii este un obiect într-un obiect care are și propriile sale metode, adică funcții și proceduri. Cele mai comune metode utilizează SaveToFile () și LoadFromFile (). care, respectiv, salvați textul într-un fișier și citiți textul din fișier. Proprietatea Linii este de tip TStrings. care nu este doar un șir, ci un set de șiruri de caractere.

Multe componente au proprietăți de acest tip. De exemplu, componenta TListBox are proprietatea Items. care aparține aceluiași tip de TStrings. prin urmare, are aceleași metode ca liniile pentru componenta TMemo. Aceasta înseamnă că apelând metoda cerută, putem citi, de exemplu, textul din fișier și în Memo. și în Listă:

Veți vedea adesea proprietățile tipului TStrings în diferite componente. Acesta este un instrument foarte puternic și trebuie să învățați cum să îl utilizați.

Evenimentele sunt proceduri care sunt efectuate ori de câte ori apare acest eveniment. De exemplu, evenimentul OnChange al componentei Edit apare ori de câte ori se modifică textul din câmpul de introducere. Evenimentele sunt localizate în fila Evenimente a Inspectorului de obiecte. Dacă nu creăm nimic, atunci la începutul acestui eveniment nu se va întâmpla nimic. Cu toate acestea, dacă faceți dublu clic pe acest eveniment, vom crea o procedură pentru procesarea acestui eveniment. Și codul de program pe care îl vom introduce va fi executat ori de câte ori apare acest eveniment.

Evenimentul OnChange este folosit destul de des atunci când trebuie să verificați dacă datele introduse corect de utilizator. Vestea bună este că majoritatea evenimentelor (precum și proprietățile și metodele) sunt aceleași pentru majoritatea componentelor. De exemplu, aproape orice componentă pentru introducerea textului de către un utilizator are un eveniment OnChange. Indiferent dacă utilizați Edit sau Memo. acest eveniment funcționează la fel.







Articole similare

Trimiteți-le prietenilor: