2017-12-20 8 views
0

Es gibt eine Prozedur SynEdit.InsertTextAtCaret ('Text') für Lazarus-Version von SynEdit. Wie fügt man Text für die Delphi-Version von SynEdit mit rückgängig gemachtem Support ein?So fügen Sie Text in Caret-Position in SynEdit ein

+1

zuordnen Wert auf die 'SelText' Eigenschaft könnte funktionieren (ich nur in der Quelle schnell sah) . – Victoria

+0

Danke Victoria. Ich werde sicherlich verwenden, dass ausgewählter Text durch meinen benutzerdefinierten Text ersetzt wird, aber ich möchte auch in der Lage sein, Text einzufügen, wenn SelText Null ist, d. H. Nur an der blinkenden Caret-Position, ohne dass eine Auswahl existiert. – user30478

+2

Nun, übliche Edit-Kontrolle Konzept der Auswahl ist, dass es immer einen Start Auswahl Index und Auswahl Länge ist 0, wenn es keine Auswahl, die eigentlich für Caret-Position steht. Daher hoffte ich, dass es funktionieren könnte. Nun, dann können Sie verfolgen, was sich in der PasteFromClipboard-Methode befindet. Verwenden Sie den Text, den Sie einfügen möchten, einfach, anstatt mit der Zwischenablage zu arbeiten, und ändern Sie leicht die protokollierten Rückgängig-Aktionen. – Victoria

Antwort

2

Es gibt Verfahren

TCustomSynEdit.procedure InsertBlock(const BB, BE: TBufferCoord; ChangeStr: PWideChar; AddToUndoList: Boolean); 

Es fügt ChangeStr Text von BB zu ändern Position. Sie können BB gesetzt und den aktuellen caret Koordinaten BE und Sie bekommen, was Sie

Zum Beispiel wollen
SynEdit1.InsertBlock(SynEdit1.CaretXY, SynEdit1.CaretXY, 'test', true); 
Verwandte Themen