2017-12-20 2 views
0

SynEdit의 Lazarus 버전을위한 SynEdit.InsertTextAtCaret ('Text') 프로 시저가 있습니다. 실행 취소 지원 기능을 갖춘 SynEdit 델파이 버전의 캐럿에 텍스트를 삽입하는 방법은 무엇입니까?SynEdit에서 캐럿 위치에 텍스트를 삽입하는 방법

+1

가 (난 그냥 빨리 소스 보였다) 작동 할 수 있습니다 원하는 것을 얻을 것입니다 수 있습니다 . – Victoria

+0

빅토리아 감사합니다. 선택한 텍스트를 내 사용자 지정 텍스트로 대체하기 위해 확실히 사용할 것입니다. 그러나 SelText가 nil 일 때 텍스트를 삽입 할 수 있기를 원합니다. 즉, 선택 항목이없는 상태에서 깜박이는 캐럿 위치에 있습니다. – user30478

+2

글쎄, 일반적인 편집 컨트롤 개념은 항상 시작 선택 인덱스가 있고, 실제로 캐럿 위치를 나타내는 선택이 없을 때 선택 길이가 0입니다. 그래서 나는 그것이 효과가 있기를 바랐다. 그럼, 당신은'PasteFromClipboard' 메쏘드 안에있는 것을 따라갈 수 있습니다, 클립 보드로 작업하는 대신 삽입하려는 텍스트를 사용하고 기록 된 실행 취소 동작을 약간 수정하는 대신에. – Victoria

답변

2

는 절차

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

그것은 ChangeStr 위치를이어야합니다 BB에서 텍스트를 변경 삽입있다. 당신은 BB를 설정하고 현재의 caret 좌표하는 당신은 당신이

는 예를 들어,`SelText` 속성에 값을 할당

SynEdit1.InsertBlock(SynEdit1.CaretXY, SynEdit1.CaretXY, 'test', true); 
관련 문제