Hi zusammen
Delphi-Quellcode:
procedure TMainPage.BtnAbsatzClick(Sender: TObject);
var X :String;
begin
X := IntToStr(SynEdiHTML.CaretX);
SynEdiHTML.Lines[SynEdiHTML.CaretX].Insert(SynEdiHTML.CaretX, ' <p>' + '</p>');
// sLinebreak + // X +
// sLinebreak +
end;
Synedit kenne ich zwar nicht, aber wenn das in etwa wie TMemo funktioniert gibt die LInes-Eigenschaft eine Zeile als String zurück und in diesen fügt das Insert dann die Tags ein (Insert ist eine Methode von TStringhelper), und der resultierende String wird dann weggeworfen, da Du ihn halt nicht an SynEdiHTML.Lines[SynEdiHTML.CaretX] zuweist, um die alte Zeile zu ersetzen. Der Zeilenindex sollte sicher auch CaretY sein, nicht CaretX.
Um Text an der momentanen Position des Carets einzufügen ist eine Zuweisung an SelText wirklich die beste Methode, soweit SelCount (oder war das SelLength?) = 0 ist.