Elementele de bază ale programării în mediul lazarus

Capitolul 6 Programarea aplicațiilor cu o interfață grafică

Toți operatorii liniei curente lipsesc (prin urmare, este recomandat să aibă un operator pe linie pentru a putea controla execuția fiecărui operator separat). Fiecare apăsare ulterioară a F7 va determina executarea instrucțiunii pe următoarea linie. Operatorul executant curent va fi evidențiat în gri, iar numărul acestuia este marcat cu săgeată verde, Fig. 6,35. Dacă codul întâlnește un apel unei proceduri sau unei funcții, atunci toți operatorii de carieră ai acestei proceduri (funcție)







de asemenea, într-un mod pas cu pas.

 Pas cu pas în bypass. De fiecare dată când este apăsată tasta F8, toți operatorii liniei curente vor fi de asemenea executați. Dacă găsiți codul

convocarea unei proceduri sau a unei funcții, atunci toți operatorii corporali ai procedurii vor fi executați.

(funcții) fără intrare, adică "imediat" și indicatorul va fi setat la următorul

după ce apelează șirul de subrutine.

 Fereastra de observare. Poate că instrumentul cel mai important și mai util este

freturi. În această fereastră, puteți monitoriza valorile curente ale variabilelor în timpul executării programului. Acest instrument vă va ajuta să urmăriți ciclul de viață al variabilelor care vă interesează și să vedeți cum se schimbă valorile acestora după executarea unui anumit operator. Pentru a deschide această fereastră, puteți utiliza comanda de meniu View -> windows Debug -> Window Observation. Totuși,

deschideți cu o combinație de taste . Punctul de vedere al

Figura 6.36. Pentru a adăuga o nouă variabilă, faceți clic dreapta pe

în fereastra de observație, în caseta de dialog deschis, introduceți numele

sau expresie, Fig. 6.37. Puteți desemna o locație permanentă

Elementele de bază ale programării în mediul lazarus

6.3 Programarea vizuală în mediul Lazarus

Fig. 6,35. Executarea pas cu pas a aplicației

Fig. 6.36. Fereastra din lista observațiilor

Fig. 6.37. Fereastra pentru adăugarea unei noi variabile în lista de urmărire

Este în general acceptat faptul că depanarea precede testarea. Asta este, pro-

Gramaticianul, atunci când dezvoltă programul, îl depanează mai întâi (detectează și

"ucide" toate "bug-urile"), apoi trece la testare. Dar, în general,

Capitolul 6 Programarea aplicațiilor cu o interfață grafică

testarea și depanarea proceselor interconectate. Adesea, atunci când se testează

Există erori care sunt fixate ... prin depanare și invers,

În timpul depanării, sunt detectate multe erori algoritmice. Prin urmare, această frază aproape întotdeauna utilizează împreună - testarea și depanarea.

În principiu, testarea începe atunci când cererea dvs. a devenit pe deplin operațională, adică sa oprit "zburând", "suspendând", "

și așa mai departe, și a început să dea rezultate. Dacă aceste rezultate sunt dezvăluite prin testare, dar cu excepția corectitudinii rezultatelor obținute,

în timpul testării este foarte important să se verifice "inacceptabil", "imposibil"

și chiar acțiuni "stupide" ale utilizatorilor. Dacă nu este nevoie să introduceți un număr de 0, ar trebui să verificați cu siguranță modul în care se comportă programul dvs. când introduceți exact acest zero, și așa mai departe. În exemplele pe care le-am examinat, noi, în esență,

asta au fost ceea ce fac ei!

6.3.10 Componente de afișare și selecție de date

Acest grup de componente vă permite să afișați vizual informații

De asemenea, este ușor să selectați datele potrivite. Informațiile din aceste componente sunt conținute sub forma unei liste (set) de linii. Pentru a lucra cu liste de șiruri, a fost dezvoltată o clasă specială numită TStrings. Această clasă este un abstract-

și încapsulează metodele de lucru cu seturi de rânduri. Din această clasă,

există clase specializate în componentele de afișare și selectare a datelor care oferă acces și procesare a unui set de șiruri de caractere corespunzătoare

cu funcționalitatea componentei. Deoarece metodele de adăugare și eliminare

Rândurile din clasa TStrings nu sunt implementate și declarate ca fiind abstracte,

toate clasele moștenitorilor din componentele mapării și selecției se suprapun acestor metode. Pentru a introduce, a edita și a edita date multi-linie mai convenabil

6.3 Programarea vizuală în mediul Lazarus

utilizați componenta TMemo.

6.3.10.1. Componenta TMemo

"Notepad", adică Sunt disponibile toate funcțiile de editare standard (selectare,

Informațiile din TMemo sunt conținute ca un set de rânduri (de tip matrice) de tip TStrings. Fiecare element al matricei conține exact un rând. Dos

La o linie separată, puteți utiliza proprietatea Liniile noii sale

măsură (index). Indicele este specificat, așa cum ar trebui să fie pentru matrice, într-

între paranteze. Numerotarea rândului începe de la zero. Numărul total de linii







este deținută în proprietatea Lines.Count.

Dacă șirul nu se încadrează în întregime în fereastră, atunci puteți seta proprietatea

WordWrap = true și apoi partea din linia care nu se potrivește va fi mutată automat la linia următoare.

De asemenea, puteți seta barele de defilare cu proprietatea ScrollBars.

Valorile posibile ale proprietăților sunt:

ssNone - instalat în mod prestabilit, fără bare de defilare.

ssVertical - setați bara verticală de defilare.

ssHorizontal - Setați bara orizontală de defilare.

ssBoth - setează atât benzi verticale cât și orizontale.

ssAutoVertical - bara verticală din fereastra componentei este vizibilă, dar nu este disponibilă până când fereastra nu este umplută vertical.

ssHorizontal - Bara orizontală din fereastra componentei este vizibilă, dar nu este disponibilă până când fereastra nu este umplută orizontal.

ssAutoBoth - combină cele două valori anterioare.

Puteți împiedica modificarea utilizatorului prin setarea proprietății

Capitolul 6 Programarea aplicațiilor cu o interfață grafică

Adăugarea unei noi linii la introducerea datelor de la tastatură se face prin apăsarea tastei Enter. Proprietatea WantReturns trebuie să fie

este setat la true. Dacă WantReturns = false. apoi pentru a merge la o nouă linie, trebuie să apăsați pe Ctrl + Enter.

Proprietatea SelStart indică începutul textului selectat și SelLength

- lungimea textului selectat (numărul de caractere).

În proprietatea Text, întregul set de rânduri este reprezentat ca o singură linie, cu returul carierei delimitatorilor și înfășurarea liniei (# 13 # 10) între linii.

Să vedem cum să umplem programabil câmpul de intrare al unei componente. Pentru a

Pentru a introduce un șir în TMemo, trebuie să utilizați următoarele metode:

funcția Adăugare (const S: string): integer; - adaugă șirul S

TMemo și returnează indexul.

adăugați procedura (const S: șir); - adaugă pur și simplu șirul S

la sfârșitul unui set de linii.

Pentru a adăuga un set întreg, de exemplu, dintr-o altă componentă

TMemo. puteți aplica metode:

procedură AddStrings (TheStrings: Tstrings); - unde TheStrings este un set de șiruri de tip TStrings. adaugă acest set de șiruri de caractere la

procedură Atribuire (Sursă: TPersistent); - șterge complet conținutul TMemo și încarcă un nou set de rânduri de la Source.

Pentru a insera un rând într-un loc arbitrar în lista de linii, există o metodă

introduceți procedura (index: integer; const S: șir); -

unde Index este numărul (indicele) liniei unde este inserat șirul S. În același timp, linia veche nu dispare, dar este deplasată în jos împreună cu toate liniile de bază

(indicele lor crește automat cu unul).

Puteți înlocui conținutul unui rând cu un simplu operator de atribuire, de exemplu, pentru a înlocui conținutul unei linii cu un index cu

Elementele de bază ale programării în mediul lazarus

6.3 Programarea vizuală în mediul Lazarus

Înregistrați operatorul:

Memo1.Lines [k]: = 'Conținutul șirului înlocuit';

De asemenea, puteți adăuga rânduri de către un operator de atribuire, dar pentru o singură utilizare,

nu puteți utiliza această metodă la momentul creării formularului, adică în procesare

Creați o formă.

Și, în final, pentru a șterge un șir, metoda aplicată

Să aplicăm aceste cunoștințe unui exemplu simplu. Creați un nou

proiectul dumneavoastră. Puneți două componente TMemo pe formular. două inscripții și un buton aproximativ așa cum se arată în figura 6.38.

Fig. 6.38. Formați cu componente TMemo

În formularul OnCreate pentru formular, introduceți codul:

procedura TForm1.FormCreate (expeditor: TObject);

Memo1.Lines.Append ('Acesta este un șir lung,' + // metoda de adăugare

"nu se potrivește în fereastra Memo1");

Memo1.Lines.Add ("Și aceasta este o linie scurtă"); // metoda de adăugare

Memo2.Clear; // ștergeți setul de mesaje Memo2

pentru i: = 0 la Memo1.Lines.Count - 1 do // adăugați rânduri

Memo2.Lines.Append (Memo1.Lines [i]); // în buclă

//Memo2.Lines.Add(Memo1.Lines[i]);// puteți aplica Adăugați

Memo2.Lines.AddStrings (Memo1.Lines); // Prima metodă

Memo2.Lines.Assign (Memo1.Lines); // al doilea, cu curățenie

Experimentați introducerea textului pentru diferite valori ale proprietăților

WordWrap. WantReturns. ReadOnly și ScrollBars.

Pentru a seta parametrii fontului, proprietatea Font este disponibilă. Are subdomenii sub numele de Nume - nume font, dimensiune - dimensiune, culoare -

Culoare, stil - stil de font și altele.

Proprietatea Aligment este utilizată pentru a alinia textul în fereastra TMemo.

Are următoarele semnificații:

taLeftJustify - aliniază la stânga. taCenter - alinierea centrului. taRightJustify - Aliniere dreapta.

Elementele de bază ale programării în mediul lazarus

6.3 Programarea vizuală în mediul Lazarus

Proprietatea Font este de asemenea disponibilă în program. Pentru exemplul anterior, adăugați un alt buton la formular, așa cum se arată în Fig. 6.39.

Scrieți următorul handler pentru acest buton:

procedura TForm1.Button2Click (expeditor: TObject);

Fig. 6.39. Formularul de cerere

După pornirea aplicației și dând clic pe butonul "Schimbare font", textul din

Memo2 își va schimba dimensiunea și culoarea.

Se pune întrebarea, dar nu pot da utilizatorului dreptul de a schimba atributele fontului? Pentru aceasta, există o componentă specială

bor proprietățile fonturilor TFontDialog. Acesta este situat pe pagina Dialoguri

o paletă de componente. Componenta nu este vizuală, deoarece în timpul rulării utilizatorul nu va vedea componenta însăși, ci un dialog standard,

Elementele de bază ale programării în mediul lazarus

Capitolul 6 Programarea aplicațiilor cu o interfață grafică

Când se face referire la această componentă. Prin urmare, poate fi

trăiți oriunde în formă. Dialogul este inițiat printr-o metodă specială.

casa componentă a Execute. Aceasta este o funcție care returnează adevărat. dacă în re-

Utilizatorul a ales de fapt câteva opțiuni pentru fonturi. Parametrii selectați sunt stocați în proprietățile componentei TFontDialog. Dacă utilizatorul nu a selectat nimic și a făcut clic pe butonul Anulare

sau tasta Esc. atunci funcția revine false.

Astfel, pentru a apela dialogul, trebuie să scrieți:

dacă FontDialog1.Execute apoi

Creați o nouă aplicație. Glisați componenta TMemo pe formular,

TFontDialog. două butoane și două inscripții, așa cum se arată în Fig. 6,40.

Fig. 6,40. Forma de aplicare cu componenta suplimentară TFontDialog

În manualul butonului "Schimbare font", introduceți codul:

procedura TForm1.Button1Click (expeditor: TObject);

dacă FontDialog1.Execute apoi







Articole similare

Trimiteți-le prietenilor: