Hallo Hansa,
wenn man sich auf das Wesentliche konzentriert, dann sieht der Code wirklich nicht sehr aufregend aus:
Delphi-Quellcode:
procedure CopyRowsContaining(sg, sgResult: TStringGrid; search: String);
var
i: Integer;
begin
ClearGrid(sgResult);
with sg do
for i := FixedRows to Pred(RowCount) do
if AnsiContainsText(Rows[i].Text, search) then
AppendRow(sgResult, Rows[i]);
end;
Hier noch das Unwesentliche für Grids ohne FixedCols:
Delphi-Quellcode:
procedure ClearGrid(sg: TSTringGrid);
var
iCol: Integer;
begin
with sg do
begin
RowCount := Succ(FixedRows);
for iCol := FixedCols to Pred(ColCount) do
Cells[iCol, FixedRows] := '';
Tag := 0; // internal rowcount
end;
end;
procedure AppendRow(sg: TStringGrid; s: TStrings);
begin
with sg do
begin
if Tag > 0 then
RowCount := RowCount + 1;
Rows[Pred(RowCount)].Assign(s);
Tag := Succ(Tag); // internal rowcount
end;
end;
Grüße vom marabu