-
Notifications
You must be signed in to change notification settings - Fork 0
/
FLog.pas
138 lines (114 loc) · 2.99 KB
/
FLog.pas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
// Log Terminal Task
// Date 26.05.22
unit FLog;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Controls, Forms, Graphics,
StdCtrls, ComCtrls, USystem, URegistry, UForm, Global, Data, Texts, UPidi;
type
TLog = class(TForm)
Terminal: TListBox;
LogStatus: TStatusBar; //13.05.07 nk add ff
btClear: TButton;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormMoving(var Msg: TwmMoving); message WM_MOVING;
procedure btClearClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
LogLines: Integer;
public
procedure Print(Text: string);
end;
const
LOG_FONTNAME = 'Courier New';
LOG_FONTSIZE = 8;
LOG_FORM = ' Lines: %d';
var
Log: TLog;
LogOpen: Byte;
LogBuffer: TStringList;
implementation
uses FMain;
{$R *.dfm}
procedure TLog.FormCreate(Sender: TObject);
begin
HideMaxButton(Self); // hide maximize button
HideCloseButton(Self); // hide close button
with Log do begin
Width := 500;
Height := 120;
Left := MAINMARGIN;
Top := MainRect.Bottom - MainRect.Top - Height - MAINMARGIN;
GetFormParameter(Self);
Show;
end;
with Terminal do begin
Align := alClient;
Style := lbStandard;
AutoComplete := False;
ExtendedSelect := False;
IntegralHeight := False;
MultiSelect := False;
Color := clCream;
Ctl3D := False;
Font.Name := LOG_FONTNAME;
Font.Size := LOG_FONTSIZE;
Font.Style := [];
ShowHint := False;
Sorted := False;
Clear;
end;
Application.ProcessMessages;
LogLines := cCLEAR;
LogOpen := cINIT;
end;
procedure TLog.FormActivate(Sender: TObject);
begin //13.05.07 nk add
AddStatusButton(LogStatus, btClear, 0);
end;
procedure TLog.FormClose(Sender: TObject; var Action: TCloseAction);
begin
LogOpen := cOFF;
SetFormParameter(Self);
Action := caFree;
end;
procedure TLog.FormMoving(var Msg: TwmMoving);
begin
LimitFormMove(MainRect, Msg);
end;
//------------------------------------------------------------------------------
// PRINT - DELPHI implementation for Tiger print
//------------------------------------------------------------------ 17.02.07 --
procedure TLog.Print(Text: string);
var
l: Long;
begin
LogBuffer.Append(Text);
if (LogOpen = cINIT) and (LogBuffer.Count > cCLEAR) then begin
for l := 0 to LogBuffer.Count - 1 do begin
with Terminal do begin
Items.Append(LogBuffer[l]);
Selected[Items.Count - 1] := True;
end;
Inc(LogLines);
LogStatus.Panels[1].Text := Format(LOG_FORM, [LogLines]);
end;
LogBuffer.Clear;
end;
Application.ProcessMessages;
end;
procedure TLog.btClearClick(Sender: TObject);
begin //13.05.07 nk add
LogLines := cCLEAR;
LogBuffer.Clear;
Terminal.Clear;
Terminal.SetFocus;
LogStatus.Panels[1].Text := Format(LOG_FORM, [LogLines]);
Application.ProcessMessages;
end;
initialization
LogBuffer := TStringList.Create;
finalization
LogBuffer.Free;
end.