webForumDet fria alternativet

TStringGrid. Vald rad??

Programmering

1 svar · 306 visningar · startad av Niclas Ohlsson

Medlem sedan juli 200068 inlägg
Frågan#1

Jag har en TStringGrid som har 7st Kolumner på varje rad. När man klickar på en rad så markeras hela denna rad.

Hur gör man för att få fram vilken rad man har klickat på?
Eller hur man tar bort hela den raden från TSG??

/Niclas

Medlem sedan maj 2000194 inlägg
#2

Här är ett exempel för att ta bort den markerade raden i din StringGrid. Här kommer först proceduren för att radera hela raden:

procedure TForm1.DeleteRow(StringGrid1: TStringGrid; ARow: Integer);
var i, j: Integer;
begin
  with StringGrid1 do
  begin
    for i := ARow to RowCount-2 do
      for j := 0 to ColCount-1 do
        Cells[j, i] := Cells[j, i+1];
    RowCount := RowCount - 1
  end;
end;

Ta reda på vilket radnummer som är markerat med hjälp av nedanstående procedur:

procedure TForm1.StringGrid1Click(Sender: TObject);
var
j, TopCell : Integer;
BottomCell: Integer;
begin
      TopCell := StringGrid1.Selection.Top;
      BottomCell := StringGrid1.Selection.Bottom;

 for j := TopCell to BottomCell do begin;
      DeleteRow(StringGrid1,j)
end;
end;
263 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)