| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- unit CodingFrom;
- interface
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, ComCtrls, StdCtrls, ExtDlgs;
- type
- TCodingLoggerForm = class(TForm)
- lv1: TListView;
- btn1: TButton;
- dlg1: TSaveTextFileDialog;
- procedure btn1Click(Sender: TObject);
- procedure lv1AdvancedCustomDrawItem(Sender: TCustomListView; Item: TListItem; State: TCustomDrawState; Stage: TCustomDrawStage; var DefaultDraw: Boolean);
- private
- { Private declarations }
- public
- procedure InsertLog(AMessage, ACode, ALoginName, AStrLevel: string);
- end;
- var
- CodingLoggerForm: TCodingLoggerForm;
- implementation
- {$R *.dfm}
- { TCodingLoggerForm }
- procedure TCodingLoggerForm.btn1Click(Sender: TObject);
- var
- logFile: TFileStream;
- I: Integer;
- str: string;
- strStream: TStringStream;
- begin
- if dlg1.Execute then
- begin
- logFile := TFileStream.Create(dlg1.FileName, fmCreate);
- strStream := TStringStream.Create('');
- try
- for I := 0 to lv1.Items.Count - 1 do
- begin
- str := Format('等级:%s;来源:%s;登录名:%s;内容:%s' + #13#10, [lv1.Items[i].SubItems[2], lv1.Items[i].SubItems[0], lv1.Items[i].SubItems[1], lv1.Items[i].Caption]);
- strStream.WriteString(str);
- end;
- strStream.Position := 0;
- logFile.CopyFrom(strStream, strStream.Size);
- finally
- FreeAndNil(logFile);
- FreeAndNil(strStream);
- end;
- end;
- end;
- procedure TCodingLoggerForm.InsertLog(AMessage, ACode, ALoginName, AStrLevel: string);
- var
- tmpStrs: TStringList;
- begin
- with lv1.Items.Insert(0) do
- begin
- Caption := AMessage;
- SubItems.Add(ACode);
- SubItems.Add(ALoginName);
- SubItems.Add(AStrLevel);
- end;
- end;
- procedure TCodingLoggerForm.lv1AdvancedCustomDrawItem(Sender: TCustomListView; Item: TListItem; State: TCustomDrawState; Stage: TCustomDrawStage; var DefaultDraw: Boolean);
- begin
- if (Item.SubItems.Count < 3) then
- Exit;
- if (SameText(Item.SubItems[2], 'error')) then
- begin
- Sender.Canvas.Brush.Color := $0000FF;
- Sender.Canvas.Font.Color := clWhite;
- end
- end;
- end.
|