如何控制richedit的行距和字体,好像很复杂。

解决方案 »

  1.   

    好像网上有类似控件,你可以到google上搜索一下
      

  2.   

    以下代码将richedit1的第二至第六个字颜色变成红色。
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    richedit1.SelStart:=1;
    richedit1.SelLength:=5;
    richedit1.SelAttributes.Color:=clred;
    end;
      

  3.   

    用RichEdit(或者memo)控件制作文本编辑器时,通过访问linescount属性可以得到总行数,但是若想知道光标当前所在行的行号就麻烦了,因为delphi没有提供这个属性。要实现这个编辑器必备功能,就须调用em_ LineFromChar。请试试下面的程序。 
      先在窗口中布置一个RichEdit或者memo(命名为editor),以及一个button。在button的onclick事件中写入下列代码。 
      var 
      CurrentLine:Integer; 
      begin 
      CurrentLine:=EditorPerform(em_ LineFromChar,SFFFF,0); 
      ApplicationMessageBox(PChar(′当前行号是′+IntToStr(CurrentLine)),′消息′,mb_ iconinformation); 
      end; 
      需要注意的是,第一行的行号为零
      

  4.   

    uses RichEdit;procedure RichEditLineSpacing( //设置编辑框的行距
      mRichEdit: TRichEdit; //Rich编辑框
      mLineSpacingRule: Byte //行距 0~2
    );
    var
      vParaFormat2: ParaFormat2;
    begin
      if not Assigned(mRichEdit) then Exit;
      FillChar(vParaFormat2, SizeOf(vParaFormat2), 0);
      vParaFormat2.cbSize := SizeOf(ParaFormat2);
      vParaFormat2.dwMask := PFM_LINESPACING;
      vParaFormat2.bLineSpacingRule := mLineSpacingRule;
      vParaFormat2.dyLineSpacing := Ord(True);
      mRichEdit.Perform(EM_SETPARAFORMAT, 0, Longint(@vParaFormat2));
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      RichEdit1.SelectAll;
      RichEditLineSpacing(RichEdit1, 0);
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin
      RichEdit1.SelectAll;
      RichEditLineSpacing(RichEdit1, 1);
    end;procedure TForm1.Button3Click(Sender: TObject);
    begin
      RichEdit1.SelectAll;
      RichEditLineSpacing(RichEdit1, 2);
    end;