![]() |
Re: In einer Memo suchen?
Hai,
warum ist hier denn das -1?
Delphi-Quellcode:
Ist doch falsch?!
SynMemo1.SelEnd := SynMemo1.SelStart+length(Edit1.Text)-1;
|
Re: In einer Memo suchen?
Moin Sharky,
nein, ist nicht falsch, da ja hier der Endpunkt der Markierung berechnet wird, nicht die Länge. Das Prinzip ist das gleiche, als hätte man einen Startoffset, an dem man etwas speichert. Um jetzt die nächste freie Position zu berechnen, addiert man auf den StartOffset die Länge dessen, was man gespeichert hat drauf. Da hier aber nicht die nächste freie Stelle benötigt wird, sondern die letzte belegte wird eins abgezogen. Beispiel SelStart = 5 Length = 4 SelEnd = 5 + 4 - 1 = 8 Es werden die Stellen 5,6,7 und 8 markiert also 4, was der Länge entspricht. Ist zwar nur ein konkretes Beispiel und keine mathematischer Beweis, sollte aber für diese Berechnung genügen, denke ich. @Citybreaker: Warum das bei Dir jetzt nicht funktioniert kann ich mir nicht erklären. Du könntest ggf. mal den Sourcecode hier anhängen, dann kann ich mir das mal komplett ansehen. Ansonsten könntest Du es auch noch einmal so versuchen:
Delphi-Quellcode:
iPos := pos(trim(Edit1.Text), SynMemo.Text);
if iPos = 0 then exit; SynMemo.SelStart := iPos-1; SynMemo.SelEnd := SynMemo.SelStart+length(trim(Edit1.Text))-1; |
Re: In einer Memo suchen?
Hai Christian,
ich habe das jetzt mal mit einem SynMemo probiert. Es geht bei mir nur mit diesem Code richtig: ![]()
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var ipos : Integer; begin iPos := pos(trim(Edit1.Text), SynMemo1.Text); if iPos = 0 then exit; SynMemo1.SelStart := iPos; SynMemo1.SelEnd := SynMemo1.SelStart+length(trim(Edit1.Text)); end; |
Re: In einer Memo suchen?
Moin Sharky,
:shock: :shock: :shock: also wenn ich das mit Deinem Code ausprobiere, dann wird
und das kann doch eigentlich auch nicht anders sein, weil
Meine SynEdit Installation stammt aus der Datei: SynEdit-20010826-CVS.zip |
Re: In einer Memo suchen?
Zitat:
:shock: :shock: :shock: bei mir ist es mit deinem Code genau umgekehrt. Es wird:
Ich habe SynEdit erst gestern installiert. Ist glaube ich Version 1.1 |
Re: In einer Memo suchen?
Moin Sharky,
SynMemo.pas 31.05.2001 14:07 / $Id: SynMemo.pas,v 1.5 2001/05/31 12:07:07 claplace Exp $ $Id ist im Header der Datei zu finden. |
Re: In einer Memo suchen?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:31 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