Autor Beitrag
Scrat
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 73



BeitragVerfasst: Di 19.11.02 13:22 
Hallo zusammen,

wie stell ich es an, dass ich den Finddialog richtig benutzen kann?
Ich habe in der Hilfe einen Quelltext gefunden, aber der funtzt irgendwie nich...

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
if FindDialog1.Execute then
   begin
    if SelLength <> 0 then
    StartPos := SelStart + SelLength
    else
    StartPos := 0;


Ich möchte einfach nur, dass nach den Wörtern gesucht wird welche ich im Finddialog eingebe.

Wer kann mir helfen?

MFG
Scrat

_________________
Wenn ein Programm nutzlos ist, muß es dokumentiert werden.
foxy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 814

Ubuntu, Gentoo
C++, PHP, Java, Ruby, Perl (Eclipse)
BeitragVerfasst: Di 19.11.02 13:25 
Versteh ich dich richtih du möchtest das du nach einem String gesucht wird den du eingibst ??... was soll er suchen Dateien mit dem Namen oder in einer Datei eine Zeile oder Wörter??
LCS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: Di 19.11.02 14:03 
Hi
Auszug aus der Hilfe zum RichEdit
borland hat folgendes geschrieben:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
procedure TForm1.FindDialog1Find(Sender: TObject);
var
  FoundAt: LongInt;
  StartPos, ToEnd: Integer;
begin
  with RichEdit1 do
  begin
    { Suchbeginn nach der aktuellen Markierung (falls vorhanden), }
    { andernfalls am Textanfang starten }

    if SelLength <> 0 then
      StartPos := SelStart + SelLength
    else

      StartPos := 0;

    { ToEnd ist die Länge von StartPos bis zum Ende des Textes im RTF-Eingabefeld }

    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;



Gruss Lothar

_________________
Der BH ist für die Brust, der Plan ist für'n Ar...
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 19.11.02 15:32 
foxy hat folgendes geschrieben:
Versteh ich dich richtih du möchtest das du nach einem String gesucht wird den du eingibst ??... was soll er suchen Dateien mit dem Namen oder in einer Datei eine Zeile oder Wörter??


Sthet doch da: Eine Zeichenfolge in einem RichEdit.
Scrat Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 73



BeitragVerfasst: Mi 20.11.02 10:20 
Ja ich möchte nach Wörtern suchen.

Wenn der Satz lauten würde: Willkommen im Delphi-Forum...

Und ich suche mittels dem Finddialog nach dem Wort "Delphi",
soll mein Cursor zu der Stelle im Satz springen wo das Wort steht und dieses blau makieren.

Danke im Vorraus
Scrat

PS: Den Finddialog-Quellcode habe ich so wie er in der Hilfe-Datei steht in meinen Quellcode kopiert. Resultat = null.

_________________
Wenn ein Programm nutzlos ist, muß es dokumentiert werden.
Keldorn
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 2266
Erhaltene Danke: 4

Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
BeitragVerfasst: Mi 20.11.02 11:12 
Hallo,

ein ähnliches thema Thema hatten wir ja erst vor kurzem ....ich hab auch den text aus der OH kopiert und bei mir is Resultat <> Null.

haste auch das onfind-ereignis beim Finddialog richtig zugeordnet?

Mfg Frank

_________________
Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
Scrat Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 73



BeitragVerfasst: Mi 20.11.02 16:30 
Also ich komme irgendwie mit der Hilfe von Delphi nur ganz selten klar.
Und OnFind habe ich bei mir gar nicht im einsatz.
(Habe ich auch bei dem Quelltext von der Delphi-Hilfe nicht finden Können)

Wenn ich Finddialog1.Onfind eingebe verlangt Delphi nach mehr Parametern. Wie muß ich denn den OnFind-Befehl benutzen?

MFG
Scrat

_________________
Wenn ein Programm nutzlos ist, muß es dokumentiert werden.
Keldorn
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 2266
Erhaltene Danke: 4

Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
BeitragVerfasst: Mi 20.11.02 16:54 
Scrat hat folgendes geschrieben:
Also ich komme irgendwie mit der Hilfe von Delphi nur ganz selten klar.

solltest du aber - sonst kommst du nie weiter.
Scrat hat folgendes geschrieben:

Und OnFind habe ich bei mir gar nicht im einsatz.

- klick den finddialog auf deiner Form an
- im objektinspektor auf ereiognisse klicken
- da steht unter anderem onclose, onfind ... , auf der rechten seite bei onfind sollte eine Prozedur eingetragen sein, wennn nicht, ist es kein wunder, das bei dir resultat=null ist.

Die gute Onlinehilfe hat folgendes geschrieben:

Beschreibung

Wenn der Benutzer auf die Schaltfläche Weitersuchen im Dialogfeld Suchen klickt, tritt das Ereignis OnFind ein. Die in Options gesetzten Flags bestimmen, wie die Suche durchgeführt wird.


steht keine Procedur drin, doppelklick drauf ... im quelltext steht dann:
ausblenden Quelltext
1:
2:
3:
4:
procedure TForm1.FindDialog1Find(Sender: TObject);
  begin

  end;

das finddialog1find sollte dir bekannt vorkommen, hierein mußte den Code aus der OH reinkopieren.

ansonsten poste mal nen teil von deinem Quelltext.

Mfg Frank :roll:

_________________
Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
Scrat Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 73



BeitragVerfasst: Do 21.11.02 10:35 
Hi Keldorn,

jetzt funkt es.
Mann muß die Prozedur also in das Ereignissfeld schreiben......

Danke
Scrat

_________________
Wenn ein Programm nutzlos ist, muß es dokumentiert werden.