Guten Morgen.
Die aktuelle Zeile steht in der Eigenschaft Row:
Delphi-Quellcode:
procedure TFSpielplan01.BitBtnEintragLoeschenClick(Sender: TObject);
var
iSF: Integer;
begin
{
if StringGrid1.Cells[3, iSP] = 'H' then
begin
iSF := Pred(FSpielfeld.StringGrid1.RowCount);
DeleteRow(FSpielfeld.StringGrid1, iSF);
ResizeGrid(FSpielfeld.StringGrid1);
end;
}
DeleteRow(StringGrid1, StringGrid1.Row);
ResizeGrid(StringGrid1);
end;
Allerdings musst du dir etwas einfallen lassen um die zugehörige Zeile aus dem SpielfeldGrid zu identifizieren. Momentan wird dort einfach die letzte Zeile im Grid gelöscht. Das ist bestimmt nicht richtig so. Dabei könnte dir diese Funktion helfen:
Delphi-Quellcode:
function LocateRow(sg: TStringGrid; index: Integer; value: String): Integer;
begin
Result := sg.Cols[index].IndexOf(value);
end;
Du brauchst dann eine spezielle (unsichtbare) Spalte in beiden Grids. Im SpielfeldGrid enthält sie einen eindeutigen Schlüssel für die jeweilige Zeile, im SpielplanGrid enthält sie den Schlüssel der zugehörigen Zeile aus dem SpielfeldGrid.
marabu