Delphi 如何从TRichedit按点或按索引获取字符

Delphi 如何从TRichedit按点或按索引获取字符,delphi,char,position,message,richedit,Delphi,Char,Position,Message,Richedit,我有一个函数,返回字符GetCharFromPos(Pt:TPoint)的索引:整数 现在我想了解那个职位的性格。像GetCharByIndex(索引:整数):Char 以下是如何从TRichEdit返回给定索引处的字符: Result := RichEdit1.Text[Index]; 以下是如何从TRichEdit返回给定索引处的字符: Result := RichEdit1.Text[Index]; 使用纯VCL的有效方法是使用SelStart、SelLength和SelText fu

我有一个函数,返回字符GetCharFromPos(Pt:TPoint)的索引:整数


现在我想了解那个职位的性格。像GetCharByIndex(索引:整数):Char

以下是如何从TRichEdit返回给定索引处的字符:

Result := RichEdit1.Text[Index];

以下是如何从TRichEdit返回给定索引处的字符:

Result := RichEdit1.Text[Index];

使用纯VCL的有效方法是使用
SelStart
SelLength
SelText

function GetCharByIndex(Index: Integer): Char;
begin    
  RichEdit.SelStart := Index;
  RichEdit.SelLength := 1;
  Result := RichEdit.SelText[1];
end;
您可能希望在修改选择之前将其保存,然后在读取角色后将其还原



然而,这是一种相当混乱的读取字符的方法。如果您准备使用原始Win32 API,则可以使用。

使用纯VCL的有效方法是使用
SelStart
selength
SelText

function GetCharByIndex(Index: Integer): Char;
begin    
  RichEdit.SelStart := Index;
  RichEdit.SelLength := 1;
  Result := RichEdit.SelText[1];
end;
您可能希望在修改选择之前将其保存,然后在读取角色后将其还原



然而,这是一种相当混乱的读取字符的方法。如果您准备使用原始Win32 API,则可以利用。

这是非常低效的,因为它读取整个文本以挑选单个字符。这是非常低效的,因为它读取整个文本以挑选单个字符。