Hallo und vielen Dank für euer Interesse.
Ich habs nun der einfachkeithalber so gemacht, bekomme aber immer nur ein Suchergebnis angezeigt auch wenn mehrere vorhanden sein müßten:
Delphi-Quellcode:
procedure TForm1.Button5Click(Sender: TObject);
var
res: TPoint;
finddlg: TFinddlg;
findparams: TFindparams;
i, j: integer;
begin
FindDlg := TFindDlg.Create(self);
try
if (finddlg.Showmodal = mrOk) then
begin
findparams := [];
if finddlg.Chkcase.Checked then findparams := findparams + [fnMatchCase];
if finddlg.Chkfull.Checked then findparams := findparams + [fnMatchFull];
if finddlg.Chkregular.Checked then findparams := findparams + [fnMatchRegular];
if finddlg.dir.itemindex = 1 then findparams := findparams + [fnDirectionLeftRight];
if finddlg.where.itemindex = 1 then findparams := findparams + [fnFindInCurrentCol];
if finddlg.where.itemindex = 2 then findparams := findparams + [fnFindInCurrentRow];
res := StringGrid1.findfirst(finddlg.findtext.text, findparams);
if res.x >= 0 then
begin
with StringGrid1 do begin
for i := 1 to RowCount - 1 do // Alle Zeilen durchlaufen
begin
for j := 1 to ColCount - 1 do // Alle Spalten durchlaufen
begin
Form3.Stringgrid2.RowCount := 1;
res := StringGrid1.findfirst(finddlg.findtext.text, findparams);
if res.x >= 0 then begin
StringGrid1.Col := res.x;
StringGrid1.row := res.y;
Form3.Stringgrid2.Rows[Form3.Stringgrid2.RowCount] := StringGrid1.Rows[res.y];
Form3.Stringgrid2.RowCount := Form3.Stringgrid2.RowCount + 1; // Zeile um 1 erhöhen
end;
end;
end;
end;
form3.ShowModal;
end
else
MessageDlg('Keine Adresse gefunden', mtinformation, [mbOK], 0);
end;
finally
end;
end;
Wie ich das einbauen soll weiß ich überhaupt nicht:
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;