AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Stringgrid nach einem Begriff durchsuchen und....
Thema durchsuchen
Ansicht
Themen-Optionen

Stringgrid nach einem Begriff durchsuchen und....

Ein Thema von capo · begonnen am 12. Nov 2006 · letzter Beitrag vom 13. Nov 2006
Antwort Antwort
Seite 1 von 2  1 2      
capo

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

Stringgrid nach einem Begriff durchsuchen und....

  Alt 12. Nov 2006, 13:21
Hallo
Wie kann ich in einem Stringgrid nach einem Begriff suchen und mir alle gefundenen Zeilen in einem neuen Stringgrid anzeigen lassen?
Wäre soooo irre toll wenn mir jemadn dabei helfen kann.
Gruss vom capo
Hotte
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

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

  Alt 12. Nov 2006, 13:31
Suchst du ne ganze zeile oder ein Teil?
wenn du nach einer ganzen zeile suchst, kabbst du dir mal .IndexOf ansehen
Markus Kinzler
  Mit Zitat antworten Zitat
capo

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

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

  Alt 12. Nov 2006, 13:43
Hi
ich suche nach einem Begriff in einer ganzen Zeile.
Es soll ein Adressprogramm werden und ich will halt alles Zeilen in denen der Begriff vorkommt in einem neuen Stringgrid anzeigen lassen.
Hotte
  Mit Zitat antworten Zitat
capo

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

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

  Alt 12. Nov 2006, 13:58
ich komme damit nicht weiter, hat jemand ein Beispielcode für mich?
capo
Hotte
  Mit Zitat antworten Zitat
capo

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

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

  Alt 12. Nov 2006, 16:47
Hallo
ich hab da was gefunden, allerdings weiss ich nicht wie ich alle Ergebnisse in ein anderes Stringgrid bekomme:
Delphi-Quellcode:
procedure TForm1.Button.Click(Sender: TObject);
var
  res: TPoint;
  finddlg: TFinddlg;
  findparams: TFindparams;

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
        StringGrid1.Col := res.x;
        StringGrid1.row := res.y;
           end
      else
        MessageDlg('Text not found', mtinformation, [mbOK], 0);
    end;
  finally
    FindDlg.free;
  end;
end;
Hotte
  Mit Zitat antworten Zitat
Hobby-Programmierer

Registriert seit: 19. Jan 2006
Ort: München
392 Beiträge
 
Delphi XE Starter
 
#6

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

  Alt 12. Nov 2006, 17:19
Nabend ..,
Zitat von capo:
Delphi-Quellcode:
...
  res := StringGrid1.findfirst(finddlg.findtext.text, findparams);
  if res.x >= 0 then begin
    StringGrid1.Col := res.x;
    StringGrid1.row := res.y;
    // hier ins neue Stringgrid schreiben zb.
    // StringGrid_neu.Rows[XX]:= StringGrid1.Rows[res.y];
   end else
    MessageDlg('Text not found', mtinformation, [mbOK], 0);
  end;
LG Mario
Mario
'Lesen Sie schnell, denn nichts ist beständiger als der Wandel im Internet!'
  Mit Zitat antworten Zitat
capo

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

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

  Alt 12. Nov 2006, 17:30
Hallo, danke
das klappt bei einem gefundenen Eintrag gut.
StringGrid2.Rows[0]:= StringGrid1.Rows[res.y]; Um weiter zu suchen verwende ich folgendes:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
  res:tpoint;
begin
  res:=StringGrid1.findnext;
  if (res.x>=0) and (res.y>=0) then
  begin
    StringGrid1.Col:=res.x;
   StringGrid1.row:=res.y;
    // StringGrid2.Rows[0]:= StringGrid1.Rows[res.y];
  end
  else
    MessageDlg('Text not found',mtinformation,[mbOK],0);
end;
Er schreibt ja so immer alles in
 StringGrid2.Rows[0] rein, er soll ja soviele neue Zeilen hinzufügen wie Ergebnisse vorhanden.
Magst du nochmal nachschauen?

Gruss capo
Hotte
  Mit Zitat antworten Zitat
capo

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

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

  Alt 12. Nov 2006, 18:00
Hallo
mit dem code unten bekomme ich alle Suchergebnisse angezeigt, allerdings werden die viel zu oft angezeigt (ca 4-5x oder mehr), ich mach irgendetwas falsch.
Ich denke es hat was mit dem
StringGrid2.Rows[i] := StringGrid1.Rows[res.y]; zu tun
nur weiß ich nicht wie ich das ändern muss.
Grüsse capo


Delphi-Quellcode:
      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
        res := StringGrid1.findnext;
        if (res.x >= 0) and (res.y >= 0) then
       
        begin

        StringGrid1.Col := res.x;
        StringGrid1.row := res.y;

        Stringgrid2.RowCount := Stringgrid2.RowCount + 1;
        StringGrid2.Row := Stringgrid2.RowCount - 1;

          StringGrid2.Rows[i] := StringGrid1.Rows[res.y];

       end;
       end;
       end;
      end
      else
        MessageDlg('Text not found', mtinformation, [mbOK], 0);
     end;
  finally
    FindDlg.free;
  end;
end;
Hotte
  Mit Zitat antworten Zitat
Hobby-Programmierer

Registriert seit: 19. Jan 2006
Ort: München
392 Beiträge
 
Delphi XE Starter
 
#9

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

  Alt 13. Nov 2006, 08:57
Moin ...
vielleicht so
Delphi-Quellcode:
...
  StringGrid_neu.RowCount:= 1;
  res := StringGrid1.findfirst(finddlg.findtext.text, findparams);
  if res.x >= 0 then begin
    StringGrid1.Col := res.x;
    StringGrid1.row := res.y;
    // hier ins neue Stringgrid schreiben zb.
    StringGrid_neu.Rows[StringGrid_neu.RowCount]:= StringGrid1.Rows[res.y];
    StringGrid_neu.RowCount:= StringGrid_neu.RowCount +1; // Zeile um 1 erhöhen
   end else
    MessageDlg('Text not found', mtinformation, [mbOK], 0);
  end;
Ungetestet aber sollte so funktionieren!
LG Mario
Mario
'Lesen Sie schnell, denn nichts ist beständiger als der Wandel im Internet!'
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#10

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

  Alt 13. Nov 2006, 09:21
Für mich sieht das alles irgendwie unnötig komplizierter aus, als es IMHO ist. Wieso reicht so was nicht ?

Delphi-Quellcode:
for i := 1 to Stringgrid1.RowCount do begin
  if gefunden then begin
    Stringgrid2.Rows [j] := Stringgrid1.Rows[i];
    j := j + 1;
    Stringgrid2.Rowcount := Stringgrid2.Rowcount;
  end;
end;
Das i läuft dabei durch alle Stringgrid-Zeilen und das j wird nach Bedarf (wenn die Funktion gefunden true ergibt) erhöht.
Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz