Cum să eliminați rând din tabelul stringgrid

Cum se elimină rândul
în Tabelul StringGrid


Putem adăuga cu ușurință sau elimina ultimul rând din componenta StringGrid, dar nu atât de ușor pentru a șterge un rând din componenta StringGrid. Acesta nu este ultimul. Prin aceasta pentru a elimina rând din StringGrid tabel. trebuie să scrie propria procedură.

Procedura elimină componenta șirul StringGrid dorit trebuie mai întâi rescrie toate liniile de sub șterse o linie în sus, apoi goliți ultimul rând, apoi se reduce numărul de rânduri dintr-un tabel. Ștergerea ultimul rând este necesară, deoarece adăugarea ulterioară a unui nou șir de linie poate avea conținutul anterior. Aici este procedura:

Procedura TForm1.DeleteRow (Arow: Integer);
i var, j: Integer;
începe
cu StringGrid1 do
începe
pentru i: = Arow + 1 la ROWCOUNT-1 do
pentru j: = 0 până la ColCount-1 do
Celulele [j, i-1]: = celule [j, i];
pentru i: = 0 până la ColCount-1 do
Celulele [i, ROWCOUNT-1]: = '';
ROWCOUNT: = ROWCOUNT-1;
se încheie;
se încheie;

Dacă doriți să salvați conținutul coloanei de grad zero (poate fi, de exemplu, numărul de linie, iar în cazul în care acestea sunt rescrise, pauza de numerotare) nu au nevoie de al doilea ciclu între 0 și 1.


Cu toate acestea, există o metodă mai scurtă pentru a elimina linia din StringGrid tabel. Este necesar să se profite de faptul că componenta StringGrid este o subclasă de TCustomGrid. Și această clasă are metoda DeleteRow. îndepărtarea șir spus.

Deci, să declare un nou tip TMyGrid, este succesorul TCustomGrid, și apoi a scrie o procedură DeleteARow:

Procedura TForm1.DeleteARow (Grid: TStringGrid;
Arow: Integer);
începe
TMyGrid (Grid) .DeleteRow (Arow);
se încheie;

Asta este! Nu uitați să se înregistreze procedura DeleteARow între procedurile de tip TForm1.

Acum, pentru a elimina rând din tabelul StringGrid, trebuie să specificați indicele liniei dorite, și ce fel de masă. Acesta este modul de a elimina, de exemplu, linia curentă: