Also entweder bin ich
oder ihr habt jetzt den Nitron
gemacht.
Ich dachte, der möchte in einem Memo-Feld etwas suchen ... da frage ich mich, warum ihr dem sagt, er soll mit StringReplace was machen, und vor allem das Ergebnis von StringReplace wieder in das Memo schreiben
Also die Funktion klaue ich einfachmal
Delphi-Quellcode:
procedure SelectLine (Memo: TMemo; index: integer);
var
i: integer;
start, fin: integer;
begin
start:= 0;
fin:= length(Memo.lines[index]);
for i:= 0 to index -1 do begin
start:= start + length(Memo.Lines[i]) + 2;
end;
memo.SetFocus;
Memo.SelStart:= start;
Memo.SelLength:= fin;
// ShowMessage(memo.SelText);
end;
Delphi-Quellcode:
function SuchenInMemo( Memo : TMemo; FindenStr, NichtFindenStr : string; LastFindLine : integer = -1 ) : integer;
var
LineIdx : integer;
begin
LineIdx := LastFindLine + 1;
Result := 0;
while
( LineIdx < Memo.Lines.Count ) and
( Result = 0 )
do
begin
if
( Pos( FindenStr, Memo.Lines[ LineIdx ] ) > 0 ) and
( Pos( NichtFindenStr, Memo.Lines[ LineIdx ] ) = 0 )
then
begin
Result := LineIdx;
SelectLine( Memo, LineIdx );
end
else
Inc( LineIdx );
end;
end;
Im Programm rufst du das so auf:
Delphi-Quellcode:
// Globale Variable oder Klassen-Variable deklarieren
var
MyLastFindLine : integer;
// beim Klick auf den Suchen-Button diesen Code
MyLastFindLine := SuchenInMemo( Memo1, Edit1.Text, Edit2.Text );
// Beim Klick auf Weitersuchen diesen Code
MyLastFindLine := SuchenInMemo( Memo1, Edit1.Text, Edit2.Text, MyLastFindLine );
cu
Oliver
[edit]der fehler ist nun behoben[/edit]
[edit2]jetzt tut die function genau das was sie soll
[/edit2]
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)