Einzelnen Beitrag anzeigen

capo

Registriert seit: 7. Jul 2006
453 Beiträge
 
Delphi 11 Alexandria
 
#14

Re: Stringgrid nach einem Begriff durchsuchen und....

  Alt 13. Nov 2006, 14:58
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;
Hotte
  Mit Zitat antworten Zitat