RichEdit 光标判断粗/细体等问题 ..
如何判断 RichEdit 中光标所在的文字是否有粗体,
若有就将粗体按钮 Down=true; 若无就将粗体按钮 Down=false;
我已经写好代码,但将文字粗体后,按钮一直为 Down=true;
点别的未粗体的文字不会 Down=false 回来。
照做 BCB6 RichEdit 例子,一样没效,该用哪种代码判断呢? RichEdit 光标 粗体 SelAttributes fsBold
[解决办法]
void __fastcall TMainForm::SelectionChange(TObject */*Sender*/)
{
TParaAttributes *Paragraph = RichEdit1->Paragraph;
TTextAttributes *SelAttributes = RichEdit1->SelAttributes;
char sizebuf[6];
try
{
FUpdating = True;
FirstInd->Left = AsInt(Paragraph->FirstIndent*RulerAdj)
- 4 + GutterWid;
LeftInd->Left = AsInt((Paragraph->LeftIndent + Paragraph->FirstIndent)
* RulerAdj) - 4 + GutterWid;
RightInd->Left = Ruler->ClientWidth-6-AsInt((Paragraph->RightIndent
+ GutterWid) * RulerAdj);
BoldButton->Down = SelAttributes->Style.Contains(fsBold);
ItalicButton->Down = SelAttributes->Style.Contains(fsItalic);
UnderlineButton->Down = SelAttributes->Style.Contains(fsUnderline);
BulletsButton->Down = static_cast<bool>(Paragraph->Numbering);
FontSize->Text = itoa(SelAttributes->Size, sizebuf, 10);
FontName->Text = SelAttributes->Name;
switch(AsInt(Paragraph->Alignment))
{
case 0:
LeftAlign->Down = True;
break;
case 1:
RightAlign->Down = True;
break;
case 2:
CenterAlign->Down = True;
break;
}
}
__finally
{
FUpdating = False;
}
}