Zitat von
mkinzler:
Ist new genauso lang wie old? Sonst wirst du deinem Ansatz sowieso Probleme bekommen.
Aber das ist nicht der Punkt.
Schau mal auf
procedure TReplaceDialog.FormShow(Sender: TObject);
Da wird das erste Vorkommen ausgewählt mit
Delphi-Quellcode:
i := WidePosEx(old, self.TntMemo1.Text, self.index);
self.TntMemo1.SelStart := i - 1;
self.TntMemo1.SelLength := Length(self.old);
self.TntButton2.Enabled := true;
self.index := i + Length(self.old);
In
procedure TReplaceDialog.TntButton2Click(Sender: TObject);
soll das nächste Vorkommen von old ausgewählt werden mit
Delphi-Quellcode:
i := WidePosEx(old, self.TntMemo1.Text, self.index);
//ShowMessage(IntToStr(i));
self.TntMemo1.SelStart := i - 1;
self.TntMemo1.SelLength := Length(self.old);
self.TntButton2.Enabled := true;
self.index := i + Length(self.old);
Also quasi genau der gleich Code wir oben. Wenn ich auch noch ein ShowMessage einfüge (Kommentar), dann sehe ich, dass auch das nächste Vorkommen richtig gefunden wurde, aber eigenartigerweise das mit dem Auswählen im Memo nicht klappt...Darum geht's
Um Rekursion zu verstehen, muss man zunächst Rekursion verstehen.