![]() |
FindDialog???
Hallo
ich komme irgendwie mit diesem FinDialog nicht klar. Wenn ich alles selber erstelle(Komponenten) und suche, klappt es. Ich möchte aber gerne den Dialog benutzen bzw. wissen wie das geht. Also folgendes: StringGrid mit nur einer Spalte. Somit rufe ich den Dialog auf.
Delphi-Quellcode:
Das ist die Findprocedure:
procedure TForm1.menusuchenvornameClick(Sender: TObject);
begin FindDialog1.Execute; end;
Delphi-Quellcode:
So jetzt ist mein Problem, wie ich die beiden verbinde. Und wenn ich den Suchtext eingebe, übernimmt er ihn nicht. Bzw wie ich überhaupt die einzelnen Elemente in dem Suchfenster ansprechen kann.
procedure TForm1.FindDialog1Find(Sender: TObject);
var suchtext: string; i: integer; begin suchtext := FindDialog1.FindText; for i:=0 to StringGrid1.RowCount -1 do begin if StringGrid1.cells[0,i] = suchtext then begin ShowMessage('gefunden'); end; end; end; Ich brauch einfach mal einen Tipp oder Denkanstoss, der mich vielleicht auf einen anderen Weg bringt. Danke |
Re: FindDialog???
Hallo,
Delphi-Quellcode:
Grüsse, Daniel :hi:
procedure TForm1.Button2Click(Sender: TObject);
begin if FindDialog1.Execute then begin //Hier der Code der zweiten Prozedur end; end; |
Re: FindDialog???
Danke für die schnelle Antwort.
Delphi-Quellcode:
Ja irgendwie passiert nichts. Das hatte ich dauernd. Warum?
procedure TForm1.btnsuchenClick(Sender: TObject);
var i:integer; suchtext: string; begin if FindDialog1.Execute then begin suchtext := FindDialog1.FindText; // bleibt leer obwohl ich den Suchtext eingebe for i:=0 to SringGrid1.RouCount -1 do begin if StringGrid1.cells[0,i] = suchtext then begin ShowMessage('gefunden'); end; end; end; end; |
Re: FindDialog???
Hallo,
FindDialog funkt nicht so wie die anderen Dialoge:
Delphi-Quellcode:
Die Delphi-Hilfe ist Dein Freund :mrgreen: :roll: :mrgreen:
// This example requires a TRichEdit, a TButton, and a TFindDialog.
// Clicking the button click will display a Find Dialog to the right of // the edit control. Filling in the "Find what" text and pressing the // Find Next button will select the first matching string in the // Rich Edit control that follows the previous selection. procedure TForm1.Button1Click(Sender: TObject); begin FindDialog1.Position := Point(RichEdit1.Left + RichEdit1.Width, RichEdit1.Top); FindDialog1.Execute; end; procedure TForm1.FindDialog1Find(Sender: TObject); var FoundAt: LongInt; StartPos, ToEnd: Integer; begin with RichEdit1 do begin { begin the search after the current selection if there is one } { otherwise, begin at the start of the text } if SelLength <> 0 then StartPos := SelStart + SelLength else StartPos := 0; { ToEnd is the length from StartPos to the end of the text in the rich edit control } ToEnd := Length(Text) - StartPos; FoundAt := FindText(FindDialog1.FindText, StartPos, ToEnd, [stMatchCase]); if FoundAt <> -1 then begin SetFocus; SelStart := FoundAt; SelLength := Length(FindDialog1.FindText); end; end; end; |
Re: FindDialog???
Ich hab das bei mir mal ausprobiert und komischerweise durchläuft das Programm den Quellcode der nach "finddialog1.execute" steht, ohne das ich auf "Weitersuchen" klicke. Versteh das nciht
|
Re: FindDialog???
@General2003
ja genau das ist ja mein Problem. Ich möchte die Suche ja auch erst starten wenn ich den FindText eingegeben habe. Und erst wenn ich nachdem auf weitersuchen klicke, soll die Suche anfangen. Wahrscheinlich ist es besser sich seinen eigenen Suchdialog zu bauen. Da weiss man wenigsten wie man die die einzelnen Komponenten ansprechen kann. Oder einer ist so gütig und verrät mir den Umgang mit diesem Finddalog. Mal ehrlich geagt, die Hilfe ist zwar gut aber irgendwie nicht umbedingt ausreichend für mein Problem. Ansonsten an Alle: vielen Dank für euere Hilfe. |
Re: FindDialog???
Du könntest Dir auch einfach die Eigenschaften, Methoden und Ereignisse vom TFindDialog ansehen.
Preisfrage: Wofür ist das Ereignis OnFind gut? |
Re: FindDialog???
Dank an alle. Es funktioniert auf einmal. :bounce2:
Delphi-Quellcode:
procedure TForm1.btnsuchenClick(Sender: TObject);
begin FindDialog1.Execute; end;
Delphi-Quellcode:
procedure TForm1.FindDialog1Find(Sender: TObject);
var i, x: integer; begin for i:=0 to StringGrid1.RowCount -1 do for x:=0 to StringGrid1.ColCount -1 do begin if StringGrid1.cells[x,i] = FindDialog1.FindText then ShowMessage('gefunden'); end; end; |
Re: FindDialog???
Und wie funktioniert das mit RichEdit statt StringGrid?? :wiejetzt:
zebrafalke |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz