Delphi或BCB里有个TMemo控件,我就是用它来显示串行口数据包的,数据包分为两种,一种是上行数据,另一种是下行数据。(迫于领导“淫威”)现在要求实现如下功能:当接收到两种数据时,要求分别用两种颜色字体显示,如上行数据用红字,下行用黑字。
TMemo控件实现不了这个功能,小弟对VCL不是很熟练,不知道有没有什么办法可以实现,或者有这样的第三方控件也可以。
我想拦截API实现,感觉不值得,请问各位大哥有没有什么好方法?

解决方案 »

  1.   

    RichEdit了,很容易的
    Memo是不能实现的
      

  2.   

    TRichEdit,就是这个了。Good luck
      

  3.   

    请问如何用TRichEdit实现,有代码最好了
      

  4.   

    以下这个函数用于设置第row行的颜色:
    procedure TForm1.setLineColor(row:integer;C:TColor);
    begin
      RichEdit1.SelStart:=SendMessage(RichEdit1.Handle,EM_LINEINDEX,row-1,0);
      RichEdit1.SelLength:=length(RichEdit1.Lines[row-1]);
      RichEdit1.SelAttributes.Color:=C;
    end;
    其中row表示你要设置第几行,C表示你要设置的颜色
    举个例子
    你想将第二行设置为红色
    则:
    procedure TForm1.Button1Click(Sender: TObject);
    begin
     SetLineColor(2,clRed);
    end;
    这样就行啦,测试通过