網(wǎng)頁設計個人簡歷長春網(wǎng)站建設方案優(yōu)化
目錄
一、前言
二、實現(xiàn)方法
1. 第一步
2. 第二步
3. 第三步
三、主程序代碼
四、下載
1. 可執(zhí)行程序
2. 程序源代碼
一、前言
????????在用Delphi做日常開發(fā)的時候,經(jīng)常需要顯示程序運行的日志,一般我們會使用TMemo,使用起來簡單,方便。但是缺點也很明顯,就是只能顯示單色文字,字體也只能統(tǒng)一設置,無法實現(xiàn)個性顏色和字體。
? ? ? ? 但是我們看大的一些系統(tǒng),日志則非常美觀、漂亮、專業(yè)。
????????例如,Delphi的編譯日志如下:
? ? ? ? 那么,我們能收實現(xiàn)這樣的日志顯示框呢,當然可以,而且非常簡單,無需使用任何第三方控件,使用Delphi自帶的TRichEdit就可以。
二、實現(xiàn)方法
????????通過對TRichEdit進行Helper構造,增加一個顯示多顏色的命令即可。
1. 第一步
????????編寫一個uTRichEdit_Helper.pas單元,在該單元中增加一個Add_Color_Log方法,該方法有5個參數(shù):
序號 | 參數(shù) | 類別 | 默認 | 說明 |
1 | msg | string | 無 | 需要顯示的消息字符串 |
2 | FontColor | TColor | clBlack(黑色) | 字體顯示的顏色 |
3 | FontSize | Byte | 9 | 字體大小 |
4 | FontStyle | TFontStyles | [ ] | 字體格式 |
5 | LeftMargin | Byte | 4 | 左邊預留空格 |
{******************************************************** 時間:2023-12-03* 作者:sensor wu* 功能:實現(xiàn)TRichEdit的彩色可編程 Log 功能** 此處為 VCL,FMX不支持該控件** 說明:* msg: 需要顯示的消息內容* FontColor: 需要現(xiàn)實的顏色,默認黑色* FontSize : 字體大小,默認9號字體* FontStyle: 字體是否加粗、斜體等顯示,默認不是* LeftMargin: 左邊留空格數(shù)量,默認是4** 快捷用法:* 1. RichEdit.Add_Color_log('編譯成功!'#13#10, clGreen); //顯示一行綠色* 2. RichEdit.Add_Color_log('編譯錯誤:');* RichEdit.Add_Color_log('23行缺少逗號...'#13#10,clRed); //顯示一行:編譯錯誤: 23行缺少逗號... 前面黑色,后面紅色*******************************************************}
unit uTRichEdit_Helper;interface
usesVcl.Graphics, //TColorWinapi.Messages, //消息常量,例如:EM_SCROLLCARET ,為了減少空間,可以不引該單元,直接使用數(shù)字解開Winapi.Windows, //消息常量,例如:SB_ENDSCROLLVcl.ComCtrls;typeTRichEditHelper = class helper for TRichEditpublicprocedure Add_Color_log(msg: string; FontColor : TColor = clBlack; FontSize : Byte = 9; FontStyle : TFontStyles = []; LeftMargin: Byte = 4);end;implementation{ TRichEditHelper }procedure TRichEditHelper.Add_Color_log(msg: string; FontColor: TColor;FontSize: Byte; FontStyle: TFontStyles; LeftMargin: Byte);
begin//此處省略了實現(xiàn)代碼
end;end.
2. 第二步
????????在主程序中引用該單元:
implementationusesuTRichEdit_Helper;
3. 第三步
????????使用:
RichEdit1.Add_Color_log(#13#10);RichEdit1.Add_Color_log('Checking project dependencies...'#13#10,clBlack,9,[fsBold]);RichEdit1.Add_Color_log('Compiling RichEdit_Helper_Demo.dproj (Debug,Win32)'#13#10,clBlack,9,[fsBold]);RichEdit1.Add_Color_log('brcc32 command line for "RicheEdit_Helper_Demo.vrc"'#13#10,clBlack);RichEdit1.Add_Color_log('dcc32 command line for "RicheEdit_Helper_Demo.dpr"'#13#10,clBlack);RichEdit1.Add_Color_log('Success'#13#10,clGreen,9,[fsBold]);RichEdit1.Add_Color_log('Elapsed time: 00:00:01.2'#13#10);
三、主程序代碼
unit uMainForm_RichEdit;interfaceusesWinapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,Vcl.Controls, Vcl.Forms, Vcl.Dialogs, IdUDPServer, IdGlobal, IdSocketHandle,Vcl.ExtCtrls, IdUDPClient, System.ImageList, Vcl.ImgList,Vcl.VirtualImageList, Vcl.BaseImageCollection, Vcl.ImageCollection,IdBaseComponent, IdComponent, IdUDPBase, Vcl.Menus, Vcl.ExtActns,System.Actions, Vcl.ActnList, Vcl.StdCtrls, Vcl.ComCtrls, Vcl.VirtualImage,Vcl.Buttons;typeTForm_RichEdit = class(TForm)Panel_Command: TPanel;SpeedButton6: TSpeedButton;SpeedButton1: TSpeedButton;SpeedButton2: TSpeedButton;SpeedButton7: TSpeedButton;SpeedButton10: TSpeedButton;VirtualImage1: TVirtualImage;Panel_Client: TPanel;Panel_LeftCommand: TPanel;SpeedButton4: TSpeedButton;RichEdit1: TRichEdit;ActionList1: TActionList;Action_Start: TAction;Action_Stop: TAction;Action_RegService: TAction;Action_UnRegService: TAction;Action_SetParams: TAction;SendMail1: TSendMail;ImageCollection1: TImageCollection;VirtualImageList1: TVirtualImageList;procedure SpeedButton4Click(Sender: TObject);procedure Action_StartExecute(Sender: TObject);procedure Action_SetParamsExecute(Sender: TObject);procedure Action_StopExecute(Sender: TObject);procedure Action_RegServiceExecute(Sender: TObject);procedure Action_UnRegServiceExecute(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varForm_RichEdit: TForm_RichEdit;implementationusesuTRichEdit_Helper;{$R *.dfm}procedure TForm_RichEdit.Action_RegServiceExecute(Sender: TObject);
beginRichEdit1.Add_Color_log('Web服務端口號: ');RichEdit1.Add_Color_log('8080'#13#10,clBlue,9,[]);
end;procedure TForm_RichEdit.Action_SetParamsExecute(Sender: TObject);
beginRichEdit1.Add_Color_log(#13#10);RichEdit1.Add_Color_log('Checking project dependencies...'#13#10,clBlack,9,[fsBold]);RichEdit1.Add_Color_log('Compiling RichEdit_Helper_Demo.dproj (Debug,Win32)'#13#10,clBlack,9,[fsBold]);RichEdit1.Add_Color_log('brcc32 command line for "RicheEdit_Helper_Demo.vrc"'#13#10,clBlack);RichEdit1.Add_Color_log('dcc32 command line for "RicheEdit_Helper_Demo.dpr"'#13#10,clBlack);RichEdit1.Add_Color_log('Success'#13#10,clGreen,9,[fsBold]);RichEdit1.Add_Color_log('Elapsed time: 00:00:01.2'#13#10);
end;procedure TForm_RichEdit.Action_StartExecute(Sender: TObject);
beginRichEdit1.Add_Color_log('服務已經(jīng)成功啟動 (綠色)'#13#10,clGreen,9,[]);
end;procedure TForm_RichEdit.Action_StopExecute(Sender: TObject);
beginRichEdit1.Add_Color_log('服務已經(jīng)成功停止 (紅色)'#13#10,clRed,9,[]);
end;procedure TForm_RichEdit.Action_UnRegServiceExecute(Sender: TObject);
beginRichEdit1.Add_Color_log('UDP在這個端口');RichEdit1.Add_Color_log('8192',clGreen,9,[fsBold,fsItalic]);RichEdit1.Add_Color_log('收到數(shù)據(jù)');RichEdit1.Add_Color_log('(' + FormatDateTime('YYYY-MM-DD hh:mm:ss',Now) +')'#13#10,clGray,9,[]);
end;procedure TForm_RichEdit.SpeedButton4Click(Sender: TObject);
beginRichEdit1.Clear;
end;end.
四、下載
1. 可執(zhí)行程序
? ? ? ? 下載(EXE)程序
2. 程序源代碼
? ? ? ? 下載(源程序:¥14.9)
????????