Pascal standard, nu prevede mecanisme separate pentru compilarea cu piese de program de asamblare ulterioară înainte de execuție. În plus, punerea în aplicare consecventă a principiului descrierea obligatorie a oricărui obiect înainte de a utiliza face practic imposibil de a dezvolta o varietate de aplicații de bibliotecă. Mai precis, aceste biblioteci numai sub formă de cod sursă poate exista în cadrul standardului Pascal și programator ar trebui să includă în program, uneori, texte foarte extinse de diverse proceduri de susținere, cum ar fi procedura de algebra matrice, integrare numerică, statistica matematică și așa mai departe. N.
Este de înțeles de ce dorința de Pascal comerciale compilatoarelor dezvoltatorii includ mijloace lingvistice care cresc modularitatea. astfel de mijloace de multe ori permisiunea de a utiliza proceduri și funcții externe, organismul care a înlocuit directiva standardul extern. Object Pascal Dezvoltatorii au intrat în această direcție, chiar și mai mult pentru a include limbajul mecanismului de așa-numitele module.
Modulul - este unitatea de program independent compilable, care include diferitele componente ale secțiunii de interfață (tipuri, constante, variabile, proceduri și funcții) și, eventual, o parte din secțiunea inițiatoare declarațiilor executabile. Apariția de obiecte în partea de interfață de a le face disponibile pentru alte module și programul principal. Tratamente corporale și funcțiile sunt localizate în porțiunea executabilă a modulului, care pot fi ascunse de utilizator.
Rolul modulului în Delphi nu se limitează doar la mecanismul de compilare separat. Delphi asociază fiecare include un modul propriu fereastra de program, și în acest fel localizeaza toate proprietățile ferestrei într-o unitate de program separat. După cum am văzut (vezi pct 5.2 ..), Programul principal (fișier proiect DPR) este foarte specific: acesta conține o listă a tuturor modulelor folosite în program și mai multe declarații executabile, asigurând crearea ferestrelor dorite și programul de comunicare cu Windows. Cea mai mare parte a programului de lucru este controlat de codul conținute în modulele.
12.1. STRUCTURA MODULULUI
Modulul are următoarea structură:
<интерфейсная часть> punerea în aplicare
<исполняемая часть> iniţializarea <нициирующая часть> finalizare <завершающая часть>
Aici unitatea - cuvântul rezervat (unul); începe să antet modul; <имя> - numele modulului (identificator corect); interfață - un cuvânt rezervat (interfață); începe interfața modulului; punerea în aplicare - cuvânt rezervat (performanță); Acesta începe o porțiune executabilă; cuvânt inițializare -zarezervirovannoe (inițiere); începe inițierea modulului; finalizare - cuvinte cheie (finalizare);
începe partea finală a modulului; end - cuvânt rezervat - un semn de la sfârșitul modulului.
Astfel, modulul este format dintr-un antet și cele patru componente, fiecare dintre acestea putând fi goale.
12.2. TITLUL DE MODUL ȘI COMUNICARE MODULUL CU RECIPROC
Titlul modulului este format din unitatea de cuvânt rezervat, iar următorul modul numit după el. Pentru a funcționa corect, Object Pascal și instrumente de conectivitate pentru a facilita dezvoltarea unor programe majore, numele trebuie să se potrivească cu numele fișierului pe disc, care este plasat în modulul de cod sursă. Dacă, de exemplu, avem un antet
codul sursă al modulului ar trebui să fie plasat în fișierul de disc la nivel mondial. pas. Numele modulului este utilizat pentru comunicarea cu alte module și programul principal. Această legătură este o ofertă specială
Aici folosește - cuvinte cheie (utilizate); <сп.модулей> -Lista modulelor cu care se stabilește de comunicare; Elementele listei sunt numele modulelor, separate prin virgulă, de exemplu:
Utilizează Windows, SysUtils, MyUnit;
interfață cuvânt rezervat, sau imediat după punerea în aplicare parte cuvânt, sau, în cele din urmă, și acolo, și acolo (de ex., e. utilizează două propuneri sunt permise în modulul).
12.3. Partea de interfață
Funcția ADDC (x, y: Complex): Complex;
Function MulC (x, y: Complex): Complex;
Dacă acum într-un alt modul de a scrie o propoziție Folosește Cmplx; atunci acesta va fi disponibil tip Somplex și două proceduri - Adăugirile și Muls ale modulului Cmplx.
12.4. Partea executabil
Partea executabil a cuvântului rezervat începe punerea în aplicare și oferă descrieri de rutine declarate în partea de interfață. Acesta poate fi declarată local, la facilitățile modulului - tipurile helper, constante, variabile și rutine, precum și eticheta în cazul în care acestea sunt utilizate în partea de deschidere.
Funcția ADDC (x, y: Complex): Complex;
Function MulC (x, y: Complex): Complex;
Funcția ADDC (x, y: Complex): Complex;
se încheie; MulC de funcții; descrieri // Opțiunea de rutine fără
// lista de parametri de repetiție
porțiune de antet Repetiție executabil trebuie să fie complete și exacte. Dacă am folosit titlul
Funcția ADDC (x, z: Complex): Complex; începe
12.5. PIESE inițiate și terminate
Inițierea și piese de completare de multe ori absente
La începutul cuvintelor de inițializare și de finalizare.
Partea de deschidere plasate declarații care sunt executate pentru a transfera managementul de bază de program și sunt utilizate în mod obișnuit pentru prepararea lucrărilor sale. De exemplu, ei pot iniția o schimbare, pentru a deschide fișierele dorite, și așa mai departe. D. În partea finală specifică declarațiile pentru a executa după finalizarea programului principal (care eliberează resursele alocate programului, închide fișierul, și așa mai departe. D.). În cazul în care mai multe module conțin o parte de declanșare, aceste piese sunt realizate consecutiv în unitățile de comandă enumerate în clauza utilizări a programului principal. În cazul în care mai multe module conțin o parte la final, aceste piese sunt realizate una după alta, în ordinea inversă a modulelor enumerate în clauza utilizări ale programului principal.
12.6. anunț ACCES în modulul obiect
Să presupunem, de exemplu, vom crea un modul care implementează aritmetica numerelor complexe (de exemplu aritmetică nu este în standard Pascal sau în Object Pascal nu sunt disponibile, dar în Delphi 6 a introdus o opțiune personalizată, care pune în aplicare acțiunile de complexe
Numerele - a se vedea secțiunea 10.5 și modul de sursă \ directorul de cazare Rtl \ Common \ VarCmplx.pas Delphi) ... Aritmetica numerelor complexe se realizează patru funcții:
Notă link-ul utilizează cmpix la începutul executabil - că pune la dispoziția handler obiecte modulului bbRunClick Cmplx. Această legătură poate fi introdus folosind Delphi IDE, opțiunea selectați File | Utilizați unitate și în fereastra care apare, faceți clic pe numele modulul Smplx.
12.7. Tipuri de module în DELPHI
În plus față de formele din repozitoriul conține și ferestre nevizibile ale modulelor. În plus față de discutat modul de uz general de mai sus, acestea includ modul de date, biblioteci dinamice, pachete și module de fluxuri.
Modulele de date au asociat fereastră, cu toate acestea, aceste ferestre nu vor apărea pe ecran. Nevoia de ferestre, datorită faptului că componentele paginilor de acces la date pot fi introduse în matriță numai, cu toate că ele nu au o incarnare vizibilă în programul de funcționare. Cutie de date modul invizibil este conceput pentru a găzdui aceste componente și domenii conexe facilități. Desigur, plasarea de componente și câmpuri pot fi utilizate și de obicei caseta de formă, dar în acest caz, pictogramele de componente dezorganiza zona vizibilă a ferestrei și face dificilă pentru a proiecta. Delphi 5, șase unități de date sunt capabile să afișeze o conexiune relațională între entități sub formă de baze de date diagrame.
Modulele de bibliotecă comune sunt concepute pentru a crea utilizate în mod obișnuit în Windows biblioteca legată dinamic DLL (Dynamic-Link Libraries). DLL servi ca un mijloc universal de potrivire rutine scrise în diferite limbaje de programare. În Windows, acesta conține o mulțime de DLL, scris în limbaj C sau limbaj de asamblare, care nu împiedică Delphi-programe pentru a le folosi. Modulele sunt proiectate pentru proiectarea biblioteci dinamice DLL folosind Object Pascal. Aceste DLL pot folosi apoi programele create cu alte limbaje de programare.
Fluxurile Modulele sunt destinate să pună în aplicare așa-numitele fluxuri de comandă [În Delphi, există, de asemenea, fluxuri de date - uita-te la p 11.4. fragmente de program care sunt executate în paralel cu alte fragmente, care împart cu ei restul timpului CPU și resursele de sistem -]. Mecanismul de debit este utilizat în 32 de biți Windows și nu este acceptat în Delphi 1. Din păcate, în implementarea curentă Delphi fluxurilor 32 nu poate să comunice cu propriile lor componente vizibile, ca o bibliotecă de componente vizuale VCL (Visual Component Library) nu are suport pentru flux. Acesta este motivul pentru care modulul de flux nu are o fereastră asociată.