Folosind componenta stringgrid, programarea - programarea c, delphi, c #

Ca exemplu de utilizare a componentei stringGrid pentru a introduce o matrice, luați în considerare un program care calculează media aritmetică a elementelor matrice. Caseta de dialog pentru program este prezentată în Fig. 5.3. Componenta stringGrid este utilizată pentru a introduce o matrice, componentele Label1 și Label2 pentru a afișa textul explicativ și rezultatul calculului, Buttoni pentru a porni procesul de calcul.






Fig. 5.3. Caseta de dialog a programului Introducerea și procesarea unui tablou

Adăugarea componentei stringGrid la formular este exact aceeași cu celelalte componente. După adăugarea unei componente în formular, trebuie să o configurați în conformitate cu Tabelul. 5.2. Valorile pentru proprietățile de înălțime și lățime trebuie să fie setate cu mouse-ul astfel încât dimensiunea componentei să fie egală cu dimensiunea rândului.

Textul programului este prezentat în Lista 5.2.

Tabelul 5.2. Valori de proprietate pentru componenta StringGrid1

Listing 5.2. Introducerea și procesarea unei matrice de numere întregi

Ferestre, Mesaje, SysUtils, Variante,

Clase, Grafică, Controale, Formulare, Dialoguri, Grile, StdCtrls;

procedura ButtonlClick (expeditor: TObject); privat

procedura TForml.ButtonlClick (expeditor: TObject); var

a. array [1..5] de integer; // array

summ: integer; // suma elementelor

sr: adevărat; // media aritmetică

i: întreg; // index

// presupune că dacă celula este goală, atunci corespunzătoare

// elementul matricei sale este zero

dacă Lungimea (StringGridl.Cells [i-1, 0]) <>0

apoi [i]: = StrToInt (StringGridl.Cells [i-1,0])

summ: = suma + a [i]; sr: = suma / 5;






Rezultatul rezultatului este Label2.Caption: =

'Suma elementelor:' + IntToStr (summ)

+ # 13 + 'Media aritmetică:' + FloatToStr (sr);

După derularea procesului de program există dorința de a face schimbări în procesul de intrare în matrice. Deci, ar fi bine dacă cursorul sa mutat automat în celula următoare a mesei, de exemplu, ca urmare a apăsării unei taste . Puteți face acest lucru folosind procedura de procesare a evenimentelor onKeyPress. Puteți aloca sarcina de a filtra tabelele de date introduse în celulă în aceeași procedură. În cazul nostru, trebuie doar să introduceți numere în celulă.

Textul procedurii de procesare a evenimentului OnKeyPress este afișat în Lista 5.3. Ar trebui să acordați atenție proprietății Col, care, în timpul executării programului, conține numărul coloanei în tabelul în care este localizat cursorul. De asemenea, puteți utiliza această proprietate pentru a muta cursorul în celula de tabelă dorită. Cu toate acestea, trebuie să țineți cont de faptul că coloanele tabelului, la fel ca și rândurile, sunt numerotate de la zero.

Listing 5.3. Procedura de procesare a evenimentului OnKeyPress

procedura TForm1.StringGridlKeyPress (Expeditor: TObject;

# 8, '0' .. '9'. ; // numere și o cheie

# 13: // cheie

dacă StringGridl.Col

apoi StringGridl.Col: = StringGridl.Col + 1;

alt cheie: = Chr (0); // nu sunt permise alte caractere

Dacă doriți să introducă o serie de numere în virgulă mobilă (a: array [1. 5] de reale), apoi procedura eveniment onkeypress mai complicat, astfel încât în ​​plus față de numărul de caractere admisibile sunt caracterul separator (virgulă sau perioada - depinde de setările de Windows) și .. minus. În scopul de a oferi un program de ușurința în ceea ce privește utilizatorul poate aplica adevărat utilizator truc substitut de inserare incorectă delimitator. Pentru a determina ce caracter separator este valabil în configurația curentă Windows, puteți să consultați variabila globală Decimaiseparator.

În lista 5.4 se afișează textul modulului de aplicație pentru introducerea și prelucrarea unui număr numeric fracționat. Procedura de procesare a evenimentului OnKeyPress oferă o intrare în celula tabelară permisă numai atunci când scrieți un număr fracționat de caractere.

Listing 5.4. Introducerea și procesarea unei serii de numere fracționate

Windows, Mesaje, SysUtils, Variante, Clase,

Grafică, Controale, Formulare, Dialoguri, Grile, StdCtrls;







Articole similare

Trimiteți-le prietenilor: