AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Wo liegt hier mein Fehler? (FindDialog)
Thema durchsuchen
Ansicht
Themen-Optionen

Wo liegt hier mein Fehler? (FindDialog)

Ein Thema von dopeline · begonnen am 4. Okt 2003 · letzter Beitrag vom 5. Okt 2003
 
dopeline

Registriert seit: 7. Mär 2003
Ort: Berlin
304 Beiträge
 
Delphi 7 Enterprise
 
#1

Wo liegt hier mein Fehler? (FindDialog)

  Alt 4. Okt 2003, 18:00
Hallo,

Ich habe ein StringGrid, dass mittels einer Schleife nach einem String durchsucht wird. dazu benutze ich einen FindDialog.

Mit einem Klick im MainMenu wird der FindDialog aufgerufen:
Delphi-Quellcode:
procedure TFormHaupt.suchen1Click(Sender: TObject);
begin
 FindDialog1.Execute;
end;
im OnFind-Ereignis des Dialogs steht folgendes:
Delphi-Quellcode:
procedure TFormHaupt.FindDialog1Find(Sender: TObject);
var suchtext:string;
    r,c:integer; // 'r' steht für row (Zeile) und 'c' steh für col(Spalte)
begin
 suchtext:=FindDialog1.FindText;
 if (suchtext='')or(suchtext=' ') then else
 begin
  For r:=0 to StringGrid1.RowCount-1 do
   For c:=0 to StringGrid1.ColCount-1 do
   If (StringGrid1.Cells[c,r]=suchtext) then
    begin
     WaehleZeile(r); //Prozedur, die bewirkt, dass eine bestimmte Zeile markiert wird, aufgerufen wird
     FindDialog1.CloseDialog;
     exit;
    end else
    begin
     FindDialog1.CloseDialog;
     MessageDlg('" '+FindDialog1.FindText+'" wurde nicht gefunden', mtInformation, [mbOK],0);
     exit;
    end;
  end;

end;
und das ist die Prozedur "WaehleZeile":
Delphi-Quellcode:
procedure TFormHaupt.WaehleZeile(Zeile:Integer);
var newSel: TGridRect;

begin
    //Einstellung, dass man immer eine ganze Zeile auswählt:
    StringGrid1.Options := StringGrid1.Options + [goRowSelect];
    //Definition des selektierten Bereiches
    newSel.Left := StringGrid1.FixedCols;
    newSel.Right := StringGrid1.ColCount-1;
    newSel.Top := Zeile;
    newSel.Bottom := Zeile;
    StringGrid1.Selection := newSel;
end;
Die wird aufgerufen, wenn der suchstring mit einem string aus dem stringgrid übereinstimmt. und die zeile, in der sich der string befindet wird markiert.

irgendwo ist da der wurm drin.
ich rufe im laufenden programm den dialog auf, gebe den suchstring ein, (der definitiv in einer zelle des stringgrids steht!), klicke auf "Weitersuchen" und er meldet mir, dass der Eintrag nicht gefunden wurde, obwohl er da ist!

Sieht jemand den Fehler?

Gruß, dopeline
  Mit Zitat antworten Zitat
 


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 06:41 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