Structura proiectului delphi - surse delphi faq

Programul Delphi este un set de fișiere asociate.

Fișierul principal de proiect, denumit inițial PROJECT1.DPR. Dacă trebuie să redenumiți numele proiectului, trebuie să suprascrieți acest fișier selectând comanda Save Project As din meniul File: Când specificați un nume, trebuie să respectați regulile pentru setarea numelor în Object Pascal. Numele nu poate conține spații (utilizați un subliniere în acest caz), trebuie să înceapă cu o literă (numerele sunt valide, dar din a doua poziție), nu pot conține alte caractere, cu excepția literelor și cifrelor. Sub ce nume salvați proiectul, sub acest nume va fi creat fișier EXE executabil, pe care îl puteți redenumi întotdeauna.







EXE - fișier executabil

Și astfel, orice program constă întotdeauna din familiare, fișierul de proiect (fișierul are o .dpr extensie) și unul sau mai multe module (fișiere cu .pas extensie) fișier proiect nu este destinat a fi editat de către utilizator și este creat în mod automat de către sistemul de programare Delphi. Pentru a vedea conținutul fișierului de proiect, trebuie să rulați comanda Project | View Source. Conținutul fișierului proiectului poate fi, de exemplu, după cum urmează:

Metodele sunt încapsulate în procedurile și funcțiile clasei. De exemplu:

Pentru a accesa metode, ca și pentru câmpuri, trebuie să folosiți numele compuse:

Metodele definite în clasă pot fi statice, virtuale, dinamice sau abstracte. Tipul metodei este determinat de mecanismul suprapunerii acesteia în descendenți. Pentru metode statice, suprapunerea este efectuată de compilator. De exemplu, să presupunem că avem o descriere a clasei părinte Tbase și a descendentului său Tdescedant, care conțin metoda cu același nume

În conformitate cu principiul polimorfismului în FirstObject.MyJoy; Se numește metoda descrisă în clasa Tbase, dar în instrucțiunea SecondObject.MyJoy; Chemat prin metoda descrisă în implicit clasa Tdescedant.Po, toate metodele descrise în clasă sunt staticheskimi.Dinamicheskie și metode virtuale diferă de statică că metodele de substituție metode descendenti părinte are loc la run progrmmy.Dlya publicitate metoda virtuală în superclasa trebuie să utilizeze cuvântul rezervat virtual, iar pentru declarația dinamică a metodei, cuvântul rezervat dinamic. În clasa descendentă, cuvântul rezervat ov erride. De exemplu:

Dacă am vrut să MyJoy clasa metoda Tbase a fost dinamic, cuvânt virtual în titlul ar trebui să fie înlocuită cu procedura dynamic.Razlichie între metodele virtuale și dinamice neviliko și datorită particularităților punerii lor în aplicare vyzovov.Mozhno spun că metodele virtuale sunt mai eficiente în ceea ce privește consumatoare de timp și metode dinamice permit o utilizare mai eficientă a memoriei RAM. Abstractele sunt metode virtuale sau dinamice definite într-o clasă, dar nu conțin nici o acțiune, nu apelați niciodată Acestea trebuie să fie redefinite explicit în clasele descendente. Se utilizează o metodă abstractă cu rezumatul cuvântului rezervat, localizat după cuvintele virtuale sau dinamice, de exemplu: procedura MyMetod; virtuale; abstrat; Scopul principal al metodelor abstracte este de a fi fondatorul unor ierarhii de metode specifice în clasele descendente. În orice clasă, există două metode speciale - constructorul și distrugătorul. Aceste metode sunt cuprinse în clasa părinte a tuturor celorlalte clase - Tobject și, prin urmare, sunt moștenite de descendenți. Ca și alte metode, ele pot fi schimbate în clasele descendente, adică sunt suprapuse. În clasa Tobject și în majoritatea descendenților săi, constructorul și distrugătorul sunt numiți Creați și Distrugeți, respectiv. Designerii sunt proiectați să creeze și să inițieze un obiect. Faptul este că obiectul în limba Object Pascal este o structură dinamică, iar obiectul variabil nu conține datele însăși, ci o referință la ele. Constructorul distribuie obiectul în memoria dinamică și atribuie valorile inițiale câmpurilor de obiecte. În acest caz, câmpurile de tip ordinal primesc 0 ca valoare inițială, un șir de șir-goale, câmpuri-pointeri-valori zero, variante de câmp-Neasignate. În plus, constructorul trimite o referință la obiectul creat în variabila Self, care este automat declarată în clasă. Din ceea ce sa spus, rezultă că accesul la câmpurile, proprietățile și metodele obiectului ar trebui să se efectueze numai după apelul constructorului. Distrugatorul eliberează memoria dinamică și distruge obiectul. Pentru declararea constructorului și a destructorului, se utilizează constructorul cuvintelor rezervate și distrugătorul respectiv. De exemplu:







Pentru a crea un obiect, trebuie să aplicați metoda constructorului la clasa obiect: varMyObject. TSample;

Dacă este creată o clasă de copii și când este creată, este planificată efectuarea unor acțiuni suplimentare care sunt absente din clasa părinte, atunci în proiectantul clasei copil, apelați mai întâi constructorul părintelui și apoi efectuați acțiuni suplimentare. Apelați orice metodă de clasă părinte suprapusă folosind cuvântul rezervat moștenit (moștenit). De exemplu, dacă clasa TDescedant are propriul constructor FMark tip TDescedant = class (TBase). boolean;

implementarea acestuia ar putea fi: constructor TDescedant.Create (Mark: Boolean);

unde apelul către constructorul părinte este efectuat de operatorul creat moștenit; și operatorul Emark: = Mark; Efectuează acțiuni suplimentare. În plus față de Destroy destructor, clasa Free este definită în clasa de bază a lui Tobject, care verifică mai întâi dacă obiectul a fost efectiv implementat și abia apoi apelează metoda Destroy. Dacă obiectul nu a fost creat de către constructor, atunci accesarea destructorului va duce la generarea unei excepții. Prin urmare, pentru distrugerea unui obiect inutil este mai convenabil să utilizați metoda Free, de exemplu: MyObject.Free; Într-o clasă, pot fi definite metode care pot fi numite fără crearea și inițializarea unui obiect. Aceste metode se numesc metode de clasă, iar clasa cuvântului rezervat este utilizată pentru anunțarea lor. De exemplu:

În mod obișnuit, metodele clasei sunt destinate pentru informații de referință despre clasa-nume a clasei, strămoșul clasei, dimensiunea clasei și așa mai departe.

Câmpurile sunt încapsulate în datele de clasă. Câmpurile de clasă sunt asemenea câmpurilor de înregistrare, dar spre deosebire de ele pot fi de orice tip, inclusiv clase, de exemplu: tastați TchildClass = clasa Fone. integer; Ftwo. string; Fthree. TObject; se încheie; Pe baza principiului încapsulării, accesul la câmpuri trebuie realizat utilizând metodele și proprietățile clasei. Cu toate acestea, în Object Pascal este permis accesul direct câmpurile .Pentru să se aplice la câmp, trebuie să scrie numele componentei, constând dintr-un nume de clasă și numele câmpului, separate printr-un punct, de exemplu: var MyObject. TChildClass; începe MyObject.Fone: = 16; MyObject.Ftwo: = 'Unele valoare șir'; se încheie; De obicei, numele câmpului este același cu numele proprietății corespunzătoare, dar litera F este adăugată la numele câmpului ca prima literă.







Trimiteți-le prietenilor: