StringGrid.RowCount równe ilości rekordów w tabeli

StringGrid.RowCount równe ilości rekordów w tabeli
AD
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 86
0

Mam problem z ustawieniem w StringGrid ilości wierszy odpowiadającej ilości rekordów w tabeli.
Próbowałem w ten sposób jednak zwracana ilość nie odpowiada rzeczywistości.

Kopiuj
procedure TForm2.Button3Click(Sender: TObject);
var idx:integer;
begin
MSTable1.open;
idx := 1;
MSTable1.FetchAll;
StringGrid1.RowCount:=MSTable1.FetchRows-1 ;
while not MSTable1.eof do
begin
StringGrid1.cells[1, idx] := MSTable1.Fields[0].asString;
StringGrid1.cells[2, idx] := MSTable1.FieldByName('nazwa').asString;
MSTable1.next;
idx := idx + 1;
end;
MSTable1.Close; 
Misiekd
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 7923
0

StringGrid1.RowCount:=1; //nagłówki pewnie też pokazujesz
while not MSTable1.eof do
begin
StringGrid1.RowCount:=StringGrid1.RowCount+1;
StringGrid1.cells[1, idx] := MSTable1.Fields[0].asString;
StringGrid1.cells[2, idx] := MSTable1.FieldByName('nazwa').asString;
MSTable1.next;
idx := idx + 1;
end;

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
0
Kopiuj
idx := StringGrid1.FixedRows;
MSTable1.FetchAll;
StringGrid1.RowCount:=MSTable1.FetchRows+idx;
AD
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 86
0

Działa po małej poprawce.

Kopiuj
StringGrid1.RowCount:=MSTable1.FetchRows+idx-1;

Bez odjęcia jedynki pokazuje na końcu jeden pusty wiersz.

AD
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 86
0

Tylko problem pojawił się po usunięciu kilku rekordów z tabeli. Ilość wierszy w StrigGridzie odpowiada ilości wierszy przed skasowanie z tym, że reszta jest pusta.

AD
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 86
0

Rozwiązałem to w ten sposób:

Kopiuj
MSTable1.open;
idx:=0;
while not MSTable1.eof do
begin
idx := idx +1;
StringGrid1.RowCount:=idx+1;
StringGrid1.cells[1, idx] := MSTable1.Fields[0].asString;
StringGrid1.cells[2, idx] := MSTable1.FieldByName('nazwa').asString;
MSTable1.next;
end;
MSTable1.Close; 

Dodałem 1 do wiersza: StringGrid1.RowCount:=idx+1;

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.