如何更改我在Delphi文件中输入的行的颜色,以便稍后可视化时,不同类型的行具有不同的颜色



我在Delphi中有一个表单程序。我已经为程序中的不同操作做了日志。我很确定我需要根据我输入的行用不同的颜色将其保存在rtf文件中,但不知道如何更改颜色。我还用richedit打开了这个文件,这样我可以看到不同的颜色。

这是我用来输入以前插入字符串列表(logText(中的行的过程,只要我想将操作添加到日志文件(logfil(中。通常,我会在有新登录和帐户会话结束时进行此操作。目前我使用.txt文件,但我很确定我需要rtf?

procedure AddToLogFile();
var
i : integer;
begin
with frmMain do
begin
i := 0;
AssignFile(logFile, 'C:UserslyubenDesktopLyuben Airport DelphiLog FileLogFile.txt');
Append(logFile);
while i < logText.Count do
begin
Writeln(logFile, logText.Strings[i]);
i := i + 1;
end;
CloseFile(logFile);
end;
end;

这就是我如何将文本添加到字符串列表(logText(

dateTimeNow := Now;
logText.Add('<' + DateTimeToStr(dateTimeNow) + '> A new flight was added');

这就是我所说的程序日志文件使用。添加到日志文件;

是的,您可以像这样使用TRichEdit:

RichEdit1.Lines.Add('Hello World!');
RichEdit1.SelAttributes.Color := clRed;
RichEdit1.Lines.Add('Delphi rocks');
RichEdit1.Lines.SaveToFile('text.rtf');

您也可以直接以RTF格式创建日志文件。RTF文件格式实际上是纯文本格式。它包含";标签";它选择所有文本属性,有点像HTML。

直接编写RTF文件的最简单方法是生成一个示例(就像上面生成的text.RTF文件一样(,然后用记事本打开它。然后,您将很容易地看到您必须使用哪些标签,并在日志文件中复制这些标签。

下面的代码可能会帮助你:

procedure TForm2.Button2Click(Sender: TObject);
var
LogFile : TextFile;
begin
// Open the log file and write RTF header with color table
AssignFile(LogFile, 'd:Temptext1.rtf');
Rewrite(LogFile);
WriteLn(LogFile, '{rtf1ansiansicpg1252deff0nouicompatdeflang1036{fonttbl{f0fnilfcharset0 Segoe UI;}}'#13#10 +
'{colortbl ;'#13#10 +
'red0green0blue0;'#13#10 +
'red255green0blue0;'#13#10 +
'red0green0blue255;}'#13#10 +
'viewkind4uc1'#13#10 +
'pardf0fs18'#13#10);
// Write a few text in various colors    
WriteLn(LogFile, 'cf1 Line in blackpar');
WriteLn(LogFile, 'cf2 Line in redpar');
WriteLn(LogFile, 'cf3 Line in bluepar');
// Finalize and close the file
WriteLn(LogFile, '}');
CloseFile(LogFile);
end;

当然,您可以将生成的RTF文件加载到TRichEdit中进行查看。在您的真实代码中,您可能应该将所有这些封装在一个漂亮的对象中,以便更容易地使用它。

另一个类似的选项是将日志文件格式化为HTML文档。

相关内容

  • 没有找到相关文章

最新更新