DBGrid Delphi este unul dintre cele mai utilizate pe scară largă componente conștiente de DB în aplicațiile legate de baze de date. Scopul său principal este de a permite utilizatorilor aplicației dvs. să manipuleze înregistrările dintr-un set de date într-o grilă tabulară.
Una dintre caracteristicile mai puțin cunoscute ale componentei DBGrid este că poate fi setată pentru a permite selectarea mai multor rânduri. Ceea ce înseamnă asta este că utilizatorii dvs. pot avea posibilitatea de a selecta mai multe înregistrări (rânduri) din setul de date conectat la grilă.
Pentru a activa selecția multiplă, trebuie doar să setați dgMultiSelect element la „Adevărat” din Opțiuni proprietate. Cand dgMultiSelect este „Adevărat”, utilizatorii pot selecta mai multe rânduri într-o grilă folosind următoarele tehnici:
Rândurile / înregistrările selectate sunt reprezentate ca marcaje și stocate în grila SelectedRows proprietate.
Rețineți că SelectedRows este utilă numai atunci când Opțiuni proprietatea este setată pe „Adevărat” pentru ambele dgMultiSelect și dgRowSelect. Pe de altă parte, atunci când utilizați dgRowSelect (când celulele individuale nu pot fi selectate), utilizatorul nu va putea edita înregistrările direct prin grilă și, dgEditing este setat automat pe „False”.
SelectedRows proprietatea este un obiect de tip TBookmarkList. Putem folosi SelectedRows proprietate către, de exemplu:
A seta dgMultiSelect pentru „Adevărat”, puteți utiliza fie Inspector de obiecte la timpul de proiectare sau utilizați o comandă ca aceasta la runtime:
DBGrid1.Options: = DBGrid1.Options + [dgMultiSelect];
O situație bună în care să folosești dgMultiSelect ar putea fi atunci când aveți nevoie de o opțiune pentru a selecta înregistrări aleatorii sau dacă aveți nevoie de suma valorilor câmpurilor selectate.
Exemplul de mai jos folosește componente ADO (AdoQuery conectat la ADOConnection și DBGrid conectat la AdoQuery peste Sursă de date) pentru a afișa înregistrările dintr-o tabelă de bază de date într-o componentă DBGrid.
Codul folosește selecția multiplă pentru a obține suma valorilor în câmpul „Dimensiune”. Utilizați acest cod de exemplu dacă doriți să selectați întregul DBGrid:
procedură TForm1.btnDoSumClick (Expeditor: TObject);
var
i: Integer;
suma: Single;
beginif DBGrid1.SelectedRows.Count> 0 thenbegin
suma: = 0;
cu DBGrid1.DataSource.DataSet dobeginfor i: = 0 la DBGrid1.SelectedRows.Count-1 dobegin
GotoBookmark (indicatorul (DBGrid1.SelectedRows.Items [i]));
sum: = sum + AdoQuery1.FieldByName ('Dimensiune'). AsFloat;
Sfârșit;
Sfârșit;
edSizeSum.Text: = FloatToStr (sumă);
Sfârșit
Sfârșit;