我想通过对 RichEdit 控件的编程完成如下功能,请赐教!
  1、控制 RichEdit 控件中文字内容的边界。
  2、通过程序设置RichEdit 控件中文字的字体、字型号(各行格式不同,如 Word)   等。 
  3、其它更多关于 RichEdit 的资料。  小弟这厢有礼!

解决方案 »

  1.   

    全在
    richedit.*
    comctrls.pas
      

  2.   

    定义一fontdialog1,
      fontdialog1.Font.assign(richedit1.selattributes);
      //设置FontDialog的Font属性为当前的文字属性
      if fontdialog1.Execute then
        currtext.Assign(fontdialog1.font);
      richedit1.setfocus;
    这牵扯到许多,最好找本书看一下。
      

  3.   

    如何通过程序设置边界?(示例中没有)
    我试了
       RichEdit.ClientRect   RichEdit.PageRect 无效有没有其它办法?如何通过程序设置每行以不同字体和字型大小显示?
       RichEdit1.Font.Name:='宋体';
       RichEdit1.Font.Size:=18;
       RichEdit1.Lines.Add('中华人民共和国');   RichEdit1.Font.Size:=13;
       RichEdit1.Lines.Add('我是一棵小草');
       结果字型号完全一致。两个很具体的问题呀!
    jiaxianglei(心语)所言是全部改换字体。
    My_Love(没有)  中所言为由客户使用 RichEdit 的结果,我不要求客户修改其中的文字内容,全部通过程序自动完成。请教!
      

  4.   

    限制RichEdit的边界,和其它edit一样,不能简单设置ClientRect.
    要使用Api函数来进行设置SendMessage();
    GetRect()
    SetRect();
    其它就简单了
    comctrls.pas,msdn,网上资料。
      

  5.   

    你要的东西可很多啊!最好在保留区查一下,你的问题基本都能解决
    -----------------------------
    1.这个是《超级猛料》里的东东,可参考一下。
    -----------------------------
    一般地,文字和编辑框的边界是靠都比较拢的,如果希望边界宽一点儿,可以使用下面的代码:
     
    procedure TForm1.Button1Click(Sender: TObject);
    const
      BORDER_WIDTH = 20;
    var
      Rect: TRect;
    begin
      SendMessage(Memo1.Handle, EM_GETRECT, 0, Longint(@Rect));
      Rect.Top    := BORDER_WIDTH;
      Rect.Left   := BORDER_WIDTH;
      Rect.Right  := Memo1.Width - BORDER_WIDTH;
      Rect.Bottom := Memo1.Height - BORDER_WIDTH;
      SendMessage(Memo1.Handle, EM_SETRECT, 0, Longint(@Rect));
      Memo1.Refresh;
    end;
    ---------------------------------
    2.设字体,
      with RichEdit1.SelAttributes do
      begin
        Color := clRed;
        Height := Height + 5;
        style := [fsbold];
      end;
    ---------------------------