AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

FindDialog???

Ein Thema von Piro · begonnen am 24. Jul 2003 · letzter Beitrag vom 1. Mär 2006
Antwort Antwort
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#1

FindDialog???

  Alt 24. Jul 2003, 22:36
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:
  procedure TForm1.menusuchenvornameClick(Sender: TObject);
  begin
   FindDialog1.Execute;
  end;
Das ist die Findprocedure:

Delphi-Quellcode:
 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;
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.

Ich brauch einfach mal einen Tipp oder Denkanstoss, der mich vielleicht auf einen anderen Weg bringt. Danke
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#2

Re: FindDialog???

  Alt 24. Jul 2003, 22:49
Hallo,

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
begin
  if FindDialog1.Execute then
  begin
    //Hier der Code der zweiten Prozedur
  end;
end;
Grüsse, Daniel
  Mit Zitat antworten Zitat
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#3

Re: FindDialog???

  Alt 25. Jul 2003, 06:01
Danke für die schnelle Antwort.

Delphi-Quellcode:
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;
Ja irgendwie passiert nichts. Das hatte ich dauernd. Warum?
  Mit Zitat antworten Zitat
Benutzerbild von APP
APP

Registriert seit: 24. Feb 2003
Ort: Graz (A)
705 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: FindDialog???

  Alt 25. Jul 2003, 07:21
Hallo,
FindDialog funkt nicht so wie die anderen Dialoge:

Delphi-Quellcode:
// 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;
Die Delphi-Hilfe ist Dein Freund
Armin P. Pressler

BEGIN
...real programmers are using C/C++ - smart developers Delphi;
END;
  Mit Zitat antworten Zitat
Benutzerbild von Nalincah
Nalincah

Registriert seit: 18. Jul 2003
898 Beiträge
 
Delphi 6 Professional
 
#5

Re: FindDialog???

  Alt 25. Jul 2003, 07:27
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
Sebastian
  Mit Zitat antworten Zitat
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#6

Re: FindDialog???

  Alt 25. Jul 2003, 09:30
@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.
  Mit Zitat antworten Zitat
Tom

Registriert seit: 7. Jan 2003
318 Beiträge
 
RAD-Studio 2009 Pro
 
#7

Re: FindDialog???

  Alt 25. Jul 2003, 10:25
Du könntest Dir auch einfach die Eigenschaften, Methoden und Ereignisse vom TFindDialog ansehen.

Preisfrage: Wofür ist das Ereignis OnFind gut?
  Mit Zitat antworten Zitat
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#8

Re: FindDialog???

  Alt 25. Jul 2003, 15:50
Dank an alle. Es funktioniert auf einmal.

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;
  Mit Zitat antworten Zitat
Benutzerbild von zebrafalke
zebrafalke

Registriert seit: 25. Feb 2006
155 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: FindDialog???

  Alt 1. Mär 2006, 20:13
Und wie funktioniert das mit RichEdit statt StringGrid??


zebrafalke
  Mit Zitat antworten Zitat
Antwort Antwort


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 19:49 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