多色多线TMemo

use*_*284 8 delphi

是否可以在Delphi XE2中配置Multicolor Multiline TMemo?.
当我写代码时:

procedure TForm1.BitBtn1Click(Sender: TObject);
var
  FirstVariable, SecondVariable, ThirdVariable :BOOL;
begin
  if FirstVariable then
    begin
      Memo1.Font.Color := clGreen;
      Memo1.Lines.Add('FirstVariable = True');
    end
  else if SecondVariable then
    begin
      Memo1.Font.Color := clBlue;
      Memo1.Lines.Add('SecondVariable = True');
    end
  else
    begin
      Memo1.Font.Color := clRed;
      Memo1.Lines.Add('ThirdVariable = True');
    end;
end;
Run Code Online (Sandbox Code Playgroud)

所有先前存在的行的字体颜色将根据变量的条件进行更改.

And*_*and 20

不,这是不可能的.但您可以使用RICHEDIT控件,例如TRichEdit包装器.

RichEdit1.SelAttributes.Color := clGreen;
RichEdit1.Lines.Add('First line.');

RichEdit1.SelAttributes.Color := clBlue;
RichEdit1.Lines.Add('Second line.');

RichEdit1.SelAttributes.Color := clRed;
RichEdit1.Lines.Add('Third line.');
Run Code Online (Sandbox Code Playgroud)

  • 我认为从技术上讲,通过直接在画布上绘图是可能的(尚未尝试)。然而,这远远超出了必要的范围,因此需要进行丰富的编辑。 (2认同)