Cunoaște curs Intuit Anatomia proiectului
Ce este în proiectul
Am tot repetat cuvântul „proiect“. În primul capitol, am spus că proiectul - un set de fișiere legate de diferite tipuri, dintre care, în cele din urmă, după compilare, se pare programul.
Din care fișierul este un proiect?
Selectați Meniu principal „Tools -> Options“, și ramura secțiunea „Setări“, faceți clic pe „Filtru fișiere“. Vei vedea 6 tipuri majore de fișiere care pot fi găsite în proiect:
- Modul Lazarus (* .pas; * pp.)
- Lazarus Project (* .lpi)
- Formular Lazarus sau Delphi (* .lfm; * DFM.)
- Pachetul Lazarus (* .lpk)
- Codul sursă al proiectului Lazarus (* .lpr)
- Lazarus alt fișier (* .inc;. * LRS ;. * LPL)
Dacă vom muta într-un dosar cu proiectul nostru, vom vedea că acesta este format din opt dosare:
Fișierele cu numele Project1 - acestea sunt fișiere ale întregului proiect, fișierele cu numele de Unit1 - acest dosar module.
Modulul> - este o unitate separată a codului sursă, realizat sub forma unui fișier cu extensia * .pas. Colectarea unor astfel de unități ale unui program.
În plus, directorul de proiect este directorul lib. care sunt aranjate conectate la datele proiectului și compilarea informațiilor. Dacă ați modificat proiectul și să păstreze aceste modificări, de asemenea, va backup dosar. în care pentru a stoca copii de rezervă ale versiunii vechi a proiectului.
De multe ori, un programator adaugă la proiect și tipurile lor de fișiere. De exemplu, într-un proiect, puteți utiliza baza de date, orice fișier text sau .ini fișier pentru a stoca preferințele utilizatorului. Este rezonabil să se aranjeze fișierele din directorul proiectului.
Acum câteva sfaturi despre numele și modulele proiectului. Proiectul ar trebui să fie numit așa cum dorim să numim programul nostru. De exemplu, proiectul primului curs ar fi oportun să se dea numele de „Bună ziua“ în loc de „Project1“ neutru.
Modulele de asemenea, necesitatea de a apela pe baza valorilor lor. Întotdeauna în proiect este modulul principal. În proiectele noastre au avut până în prezent doar o singură fereastră. Modulul. creat pentru acea fereastră, și va fi principalul. În literatura de specialitate există mai multe sfaturi despre cum să desemneze modulele se vor concentra pe unul dintre ele. Să sunt de acord, în viitor, modulul principal este numit principal (Eng principal -. Șef), precum și alte module pentru a da nume semnificative, de exemplu, Opțiuni. Editor, etc. Forma modulului (sau, mai degrabă, de numele de proprietate a formularului) va fi, de asemenea, numit, dar cu f- prefix. care desemnează forma. Asta este, fMain. fOptions. fEditor și așa mai departe. Consolidați acest material în practică.
Cererea în schimb numele proiectului Project1, tastați numele nou Buna ziua. nu uitați că am fost de acord să păstreze proiectele în folderul cu numele de sălile de curs și numărul de proiect în ea. În exemplul nostru, acest lucru ar fi
După ce faceți clic pe butonul „Salvați“, vi se va solicita să salvați modulul principal. Forma noi numim fMain. apoi da numele modulului doar principal. În Lazăr, litere mari și mici nu se disting, cu toate acestea, de a utiliza litere mari pentru o mai bună lizibilitate a codului sa se obisnuiasca cu alocarea de nume. De exemplu, FileEdit. SaveAll etc.
În legendă forme de proprietate cuvântul înscriem „Welcome“ (desigur, fără ghilimele), va fi mai ușor de înțeles pentru titlul ferestrei. Nu uita după ce introduceți noile valori ale proprietăților în Object Inspector să apăsați

Fig. 2.4. Tag TLabel
Sfat: dacă mutați cursorul mouse-ului la componenta si un timp ce nu faceți clic, va tooltip numele componentei.
Faceți clic pe etichetă, apoi formularul de la partea de sus a ferestrei. Din moment ce avem o etichetă, puteți lăsa un nume implicit (Nume proprietate) - Label1. Dar, în proprietatea Caption a scrie eticheta:
Următoarele etichete pune componente tEditează - un câmp de text editabil. în care utilizatorul poate scrie ceva:

Fig. 2.5. TEditează câmp text
În această componentă, proprietatea Numele și lăsați implicit - edit1. După cum puteți vedea, în proprietatea Caption a componentei nu este prezent, dar nu a fost proprietatea text - este aici și conține textul afișat în câmpul. În mod implicit, acesta este același cu numele componentei. Doar curăța proprietatea prin eliminarea textului vechi (nu uita
Chiar de jos a stabili butonul TButton. Lăsați-l pe numele implicit, și în proprietate scrie Legendă
Schimbați poziția și mărimea componentelor și matrița în sine, astfel încât forma luată aproximativ forma următoare:

Fig. 2.6. Forma finală a formei principale

Salvați proiectul și rulați-l. În cazul în care programul a încărcat, introduceți numele dvs., și apoi faceți clic în caseta edit1 „Run.“ Ar trebui să obțineți ceva de genul acest rezultat:

Fig. 2.8. Programul Hello.exe în acțiune
Puteți de multe ori pentru a schimba numele în caseta de text și apoi apăsați butonul „Run“ pentru a obține salut cu un text diferit. Obținem un program interactiv reală. de exemplu, programul. interacțiunea cu utilizatorul.
În conferințele ulterioare nu vom locui atât de multe detalii cu privire la modul de a salva un proiect sau modul. limitat scurt
Salvați proiectul sub numele de ...
Vă mulțumim pentru cursul minunat!
Munca independentă №2 compila modul MyCript.pas (Sistem de operare: Windows 7 x64, Lazarus 1.4 Win64) a emis o eroare în codul de asamblare
mycript.pas (54,5) Eroare: Asm: [împinge reg32] combinație de invalid opcode și operanzi
mycript.pas (95,5) Eroare: Asm: [pop reg32] combinație nevalidă de Opcode și operanzi
Am înțeles că cursul este gata pentru 32-bit sistem de operare, dar ce se întâmplă în cazul sistemelor pe 64 de biți?
Handlerele FileCreate elemente din meniu și FileOpen, precum și închiderea handler forma OnClose - în aceste trei proceduri conțin același cod
le înainte de a crea noul text>
în cazul în care începe apoi Memo1.Modified
// daca utilizatorul este de acord pentru a salva modificările:
dacă MessageDlg ( 'Save As'
„Fișierul curent a fost modificat. Salvați modificările?
mtConfirmation, [mbYes, mbNo, mbIgnore], 0) = mrYes apoi
FileSaveClick (Sender);
se încheie; // dacă
Dați-mi voie să vă întreb: nu ar fi mai bine să facă acest cod într-o procedură separată, de exemplu - sub forma unui eveniment handler OnCloseQuery? Din câte îmi amintesc de experiența Delphi, numesc această procedură în sine nu ar trebui să conducă la închiderea formularului. Acest lucru înseamnă că acesta poate fi utilizat în procedurile de curățare Memo1 și citirea dintr-un fișier. Sau în Lazăr nu poți face?