Versuch es mal so
Delphi-Quellcode:
function SeekRecord(Grid: TStringGrid; ColOrder: TArray<Integer>; StrList: TArray<string>): Boolean;
var
i, j: Integer;
begin
Result := False;
for i := 1 to Grid.RowCount - 1 do
begin
for j := Low(ColOrder) to High(ColOrder) do
begin
Result := (Grid.Cells[ColOrder[j], i] = StrList[j]); // Das ist kürzer
if Result then // niemals auf true oder false prüfen! eher so: if Result then
Break;
end;
if Result then
Break;
end;
if not Result then // "if Result = False" => "if not Result"
ShowMessage('Datensatz nicht gefunden!')
else
ShowMessage('Datensatz gefunden!');
end;
Deine Fehlermeldung kam übrigens dort bei der Zuweisung von i.
Delphi-Quellcode:
if result = false then
Grid.Row := i
else
ShowMessage('Datensatz gefunden!');
//GridDeleteRow(Grid, i);
if result = true then
Grid.Row := i
else
ShowMessage('Datensatz nicht gefunden!');