我有返回字符的索引的函數GetCharFromPos(Pt:TPoint):Integer;如何從TRichedit獲取按點或索引的字符
現在我想獲得該位置的字符。像GetCharByIndex(Index:Integer):Char;
我有返回字符的索引的函數GetCharFromPos(Pt:TPoint):Integer;如何從TRichedit獲取按點或索引的字符
現在我想獲得該位置的字符。像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];
這是非常低效的,因爲它讀取整個文本以挑選出單個字符。 – 2011-06-07 11:18:22