Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi SynEdit Suche (https://www.delphipraxis.net/101488-synedit-suche.html)

Störtebeker 14. Okt 2007 11:06


SynEdit Suche
 
Hallo,

ich habe mal beim Stöbern durch das DP-Forum folgenden Codeschnipsel gefunden:

Delphi-Quellcode:
SynEditSearch1.Pattern := Edit1.Text;
SynEditSearch1.FindAll(SynEdit1.Lines.Text);
SynEdit1.SelStart := SynEditSearch1.Results[-1];
SynEdit1.SelLength := Length(Edit1.text);
Nun ist das Problem:

Sagen wir ich habe die Zeile 1 mit <html> und die Zeile 4 mit google. Egal ob ich nun im Suchfeld google eingebe oder HTML. Er makiert immer nur die erste Zeile.

Hoofe auf Hilfe.

mfG
Störtebeker

fkerber 14. Okt 2007 11:38

Re: SynEdit Suche
 
Hi!

Ich kenne mich jetzt mit der Synedit-Scuhe im speziellen nicht so aus, aber

Delphi-Quellcode:
SynEdit1.SelStart := SynEditSearch1.Results[-1];
dieses [-1] wundert mich etwas...
Versuch es mal mit [0] bzw. versuche mal mehr über dieses Array rauszufinden...


Ciao, Frederic

Störtebeker 14. Okt 2007 11:55

Re: SynEdit Suche
 
Zitat:

Ein Hallo an euch beide

Ein dickes Danke für eure Antworten
Mit

Delphi-Quellcode:
Form1.SynEditSearch1.Pattern := Edit1.Text;
Form1.SynEditSearch1.FindAll(Form1.Eingabe.Lines.Text);
Form1.eingabe.SelStart := Form1.SynEditSearch1.Results[0];
Form1.Eingabe.SelLength := Length(Edit1.text);


Makiert er es jetzt... Ähm, halbwegs.
Ein Problem besteht noch:
Wenn ich das Wort google suchen lasse makiert er nur
Code: markieren
oogle


und lässt das G aus.
Wie könnte ich das auch noch gerade biegen?

mfg
draGo
Daraufhin schrieb Neutral General
Zitat:

Delphi-Quellcode:
SelStart-1

Daher das mit dem "-1"

Aber es funzt halt nur, das egal was ich schreibe nur die erste Zeile markiert wird. Ist das gescuhte Wort überhaupt nicht vorhanden, sucht er auch nicht. Ist das Wort "GOOGLE" drei Zeilen weiter aber vorhanden, markiert er mir trotzdem nur das Wort in zeile 1.

mfG
Störtebeker

fkerber 14. Okt 2007 12:55

Re: SynEdit Suche
 
Hi!

Teste mal

Delphi-Quellcode:
Form1.SynEditSearch1.Pattern := Edit1.Text;
Form1.SynEditSearch1.FindAll(Form1.Eingabe.Lines.Text);
Form1.eingabe.SelStart-1 := Form1.SynEditSearch1.Results[0];
Form1.Eingabe.SelLength := Length(Edit1.text);
und versuche dann mal zu verstehen, was der Code macht...
Nur dann wirst du auch mehrere Vorkommen eines Suchbegriffs finden können...

Ciao, Frederic

Störtebeker 14. Okt 2007 13:12

Re: SynEdit Suche
 
Danke für den Tipp. Ist klar, wenn ich das "-1" an die falsche Stelle setzte.

Aber was nu?

Delphi-Quellcode:
SynEditSearch1.Pattern := Edit1.Text;
SynEditSearch1.FindAll(SynEdit1.Lines.Text);
>>>>SynEdit1.SelStart-1 := SynEditSearch1.Results[0];<<<<
SynEdit1.SelLength := Length(Edit1.text);
Eingabe ist bei mir SynEdit, darum habe ich es hier jetzt geändert.

Delphi markiert mir die mit >>>> <<<< markierte Zeile mit:

Zitat:

[ERROR]...: Left side cannot be assigned to
mfG
Störtebeker

fkerber 14. Okt 2007 13:15

Re: SynEdit Suche
 
Hi!

ARGH, böser Fehler meinerseits!!!!


Delphi-Quellcode:
Form1.SynEditSearch1.Pattern := Edit1.Text;
Form1.SynEditSearch1.FindAll(Form1.Eingabe.Lines.Text);
Form1.eingabe.SelStart := Form1.SynEditSearch1.Results[0]-1;
Form1.Eingabe.SelLength := Length(Edit1.text);

Ciao, Frederic

Störtebeker 14. Okt 2007 13:19

Re: SynEdit Suche
 
Super. Danke. Es funzt jetzt wunderbar. :thumb:

mfG
Störtebeker


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:10 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