首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

RichEdit 光标判断粗/细体等有关问题 .

2013-10-01 
RichEdit 光标判断粗/细体等问题 ..如何判断 RichEdit 中光标所在的文字是否有粗体,若有就将粗体按钮 Down

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;
  }
}

[解决办法]
就这句话,实现了功能!!!
BoldButton->Down = SelAttributes->Style.Contains(fsBold);

热点排行