现在,Comcobox1内放入系统的font全部项,再加一个memo1作为文本输入,
怎样让Comcobox1内的选项改变文本字体啊?最关键的是,如何只选整个文本中的几个字来改变他们的字体啊?!  
   兄弟先谢过了!

解决方案 »

  1.   

    只有用RichEdit,要么自己用DrawText自己写字!
      

  2.   

    Richedit.selectstar=X;
    Richedit.selelangth=10;
    richedit.select.font.....
      

  3.   

    memo是不行的,他不支持选中、操作部分,只能是全部的,至于事件应该在combobox的change中写,
      

  4.   

    richedit1.SelAttributes.Name:=combobox1.text;
      

  5.   

    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.