文字 GetCharFromPos(Pt: TPoint): Integer; のインデックスを返す関数があります。
今、私はその位置のキャラクターを取得したかった. GetCharByIndex(Index: Integer): Char; のように
純粋な VCL を使用してこれを行う効率的な方法はSelStart
、SelLength
とを使用することSelText
です。
function GetCharByIndex(Index: Integer): Char;
begin
RichEdit.SelStart := Index;
RichEdit.SelLength := 1;
Result := RichEdit.SelText[1];
end;
変更する前に選択を保存しておき、文字を読み終わったら元に戻すことをお勧めします。
ただし、これは文字を読むにはかなり厄介な方法です。生の Win32 API を使用する準備ができている場合は、EM_GETTEXTRANGE
.
TRichEdit から特定のインデックスの文字を返す方法は次のとおりです。
Result := RichEdit1.Text[Index];