RichEdit.font.Name:='宋体';
RichEdit.font.size:=9;这样RICHEDIT的值全变成宋体九号了,有没有方法可以让第二行或是某一行的值变成想要的字体?

解决方案 »

  1.   

    在用EHLIB中处理报表时,要动态设置printdbgrideh的beforegridtext的rich text中预设对象的文本字体大小,请问如何实现?或者谁有rich text的资料,也可以给我。一样给分!
    你的回答:function TPrintDBGridEh.GridTextReplace(RichStrings: TStrings;
      const SearchStr, ReplaceStr: string; StartPos, Length: Integer;
      Options: TSearchTypes; ReplaceAll: Boolean): Integer;
    begin
      Result := -1;
      with TRichEditStrings(RichStrings) do
      begin
        while True do
        begin
          Result := RichEdit.FindText(SearchStr, StartPos, Length, Options);
          if Result <> -1 then
          begin
            RichEdit.SelStart := Result;
            RichEdit.SelLength := System.Length(SearchStr);
            RichEdit.SelText := ReplaceStr;
            RichEdit.Font.Name:=....//在这里加上你的代码
          end;
          if not ReplaceAll or (Result = -1) then Break;
        end;
      end;
    end;
      

  2.   

    参照这个单元的做法:
    unit UnRTF;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls, ComCtrls;type
      TForm1 = class(TForm)
        RichEdit1: TRichEdit;
        ComboBox1: TComboBox;
        Edit1: TEdit;
        Button1: TButton;
        Button2: TButton;
        ColorDialog: TColorDialog;
        Edit2: TEdit;
        Button3: TButton;
        Button4: TButton;
        procedure FormCreate(Sender: TObject);
        procedure Button2Click(Sender: TObject);
        procedure Button1Click(Sender: TObject);
        procedure Button3Click(Sender: TObject);
        procedure Button4Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.DFM}procedure TForm1.FormCreate(Sender: TObject);
    begin
      ComboBox1.Items:=Screen.Fonts;
      ComboBox1.Text:='宋体';
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin
     if ColorDialog.Execute then
     begin
       Edit2.Color:=ColorDialog.Color;
     end;
    end;procedure TForm1.Button1Click(Sender: TObject);
    var
    n:Integer;
    begin
      n:=Length(Edit2.text);
      RichEdit1.Lines.Add(Edit2.Text);
      RichEdit1.SelLength:=-n-2;
      RichEdit1.SelAttributes.Name:=ComboBox1.Text;
      RichEdit1.SelAttributes.Color:=Edit2.Color;
      RichEdit1.SelAttributes.Size:=StrToInt(Edit1.text);
    end;procedure TForm1.Button3Click(Sender: TObject);
    begin
      RichEdit1.SelAttributes.Name:=ComboBox1.Text;
      RichEdit1.SelAttributes.Color:=Edit2.Color;
      RichEdit1.SelAttributes.Size:=StrToInt(Edit1.text);
      RichEdit1.Lines.Add(Edit2.Text);
    end;procedure TForm1.Button4Click(Sender: TObject);
    begin
    RichEdit1.Lines.Add(Edit2.Text);
    end;end.
      

  3.   

    高手就是高手,有时间再和你探讨一下EHLIB。
    其实问题比较简单,想复杂了。
    我的QQ:16349893,可以做朋友吗?