Added: Pause and Copy buttons to Observer.MonitorForm
Added: Verbose/Info/Warning/Error buttons to test application
This commit is contained in:
parent
b96c2a9d72
commit
7d3a23295c
BIN
Resources/Copy.bmp
Normal file
BIN
Resources/Copy.bmp
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.3 KiB |
BIN
Resources/Pause.bmp
Normal file
BIN
Resources/Pause.bmp
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.3 KiB |
@ -19,29 +19,28 @@ object MainForm: TMainForm
|
|||||||
object pcObservers: TPageControl
|
object pcObservers: TPageControl
|
||||||
AlignWithMargins = True
|
AlignWithMargins = True
|
||||||
Left = 8
|
Left = 8
|
||||||
Top = 113
|
Top = 169
|
||||||
Width = 595
|
Width = 595
|
||||||
Height = 361
|
Height = 305
|
||||||
Margins.Left = 8
|
Margins.Left = 8
|
||||||
Margins.Top = 8
|
Margins.Top = 8
|
||||||
Margins.Right = 8
|
Margins.Right = 8
|
||||||
Margins.Bottom = 8
|
Margins.Bottom = 8
|
||||||
ActivePage = tsNamedPipe
|
ActivePage = tsEvent
|
||||||
Align = alClient
|
Align = alClient
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
OnChange = pcObserversChange
|
OnChange = pcObserversChange
|
||||||
|
ExplicitTop = 113
|
||||||
|
ExplicitHeight = 361
|
||||||
object tsEvent: TTabSheet
|
object tsEvent: TTabSheet
|
||||||
Caption = 'Event Observer '
|
Caption = 'Event Observer '
|
||||||
ExplicitLeft = 0
|
ExplicitHeight = 333
|
||||||
ExplicitTop = 0
|
|
||||||
ExplicitWidth = 0
|
|
||||||
ExplicitHeight = 0
|
|
||||||
object mmoEvent: TMemo
|
object mmoEvent: TMemo
|
||||||
AlignWithMargins = True
|
AlignWithMargins = True
|
||||||
Left = 8
|
Left = 8
|
||||||
Top = 8
|
Top = 8
|
||||||
Width = 571
|
Width = 571
|
||||||
Height = 317
|
Height = 261
|
||||||
Margins.Left = 8
|
Margins.Left = 8
|
||||||
Margins.Top = 8
|
Margins.Top = 8
|
||||||
Margins.Right = 8
|
Margins.Right = 8
|
||||||
@ -50,19 +49,18 @@ object MainForm: TMainForm
|
|||||||
ReadOnly = True
|
ReadOnly = True
|
||||||
ScrollBars = ssVertical
|
ScrollBars = ssVertical
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
|
ExplicitHeight = 317
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
object tsFile: TTabSheet
|
object tsFile: TTabSheet
|
||||||
Caption = 'File Observer'
|
Caption = 'File Observer'
|
||||||
ImageIndex = 1
|
ImageIndex = 1
|
||||||
ExplicitLeft = 0
|
ExplicitHeight = 333
|
||||||
ExplicitTop = 0
|
|
||||||
ExplicitWidth = 0
|
|
||||||
ExplicitHeight = 0
|
|
||||||
end
|
end
|
||||||
object tsNamedPipe: TTabSheet
|
object tsNamedPipe: TTabSheet
|
||||||
Caption = 'Named Pipe Observer'
|
Caption = 'Named Pipe Observer'
|
||||||
ImageIndex = 2
|
ImageIndex = 2
|
||||||
|
ExplicitHeight = 333
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
object pnlButtons: TPanel
|
object pnlButtons: TPanel
|
||||||
@ -87,6 +85,7 @@ object MainForm: TMainForm
|
|||||||
Cancel = True
|
Cancel = True
|
||||||
Caption = 'Close'
|
Caption = 'Close'
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
|
OnClick = btnCloseClick
|
||||||
end
|
end
|
||||||
object btnMonitorForm: TButton
|
object btnMonitorForm: TButton
|
||||||
Left = 0
|
Left = 0
|
||||||
@ -105,7 +104,7 @@ object MainForm: TMainForm
|
|||||||
Left = 8
|
Left = 8
|
||||||
Top = 8
|
Top = 8
|
||||||
Width = 595
|
Width = 595
|
||||||
Height = 97
|
Height = 153
|
||||||
Margins.Left = 8
|
Margins.Left = 8
|
||||||
Margins.Top = 8
|
Margins.Top = 8
|
||||||
Margins.Right = 8
|
Margins.Right = 8
|
||||||
@ -115,7 +114,7 @@ object MainForm: TMainForm
|
|||||||
TabOrder = 2
|
TabOrder = 2
|
||||||
DesignSize = (
|
DesignSize = (
|
||||||
595
|
595
|
||||||
97)
|
153)
|
||||||
object lblMessage: TLabel
|
object lblMessage: TLabel
|
||||||
Left = 16
|
Left = 16
|
||||||
Top = 32
|
Top = 32
|
||||||
@ -125,7 +124,7 @@ object MainForm: TMainForm
|
|||||||
end
|
end
|
||||||
object lblException: TLabel
|
object lblException: TLabel
|
||||||
Left = 16
|
Left = 16
|
||||||
Top = 59
|
Top = 99
|
||||||
Width = 51
|
Width = 51
|
||||||
Height = 13
|
Height = 13
|
||||||
Caption = 'Exception:'
|
Caption = 'Exception:'
|
||||||
@ -140,19 +139,19 @@ object MainForm: TMainForm
|
|||||||
Text = 'Hello world!'
|
Text = 'Hello world!'
|
||||||
OnKeyDown = edtMessageKeyDown
|
OnKeyDown = edtMessageKeyDown
|
||||||
end
|
end
|
||||||
object btnSend: TButton
|
object btnVerbose: TButton
|
||||||
Left = 500
|
Left = 92
|
||||||
Top = 29
|
Top = 56
|
||||||
Width = 75
|
Width = 75
|
||||||
Height = 21
|
Height = 21
|
||||||
Anchors = [akLeft, akTop, akRight]
|
Anchors = [akLeft, akTop, akRight]
|
||||||
Caption = '&Send'
|
Caption = 'Verbose'
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
OnClick = btnSendClick
|
OnClick = btnLogClick
|
||||||
end
|
end
|
||||||
object edtException: TEdit
|
object edtException: TEdit
|
||||||
Left = 92
|
Left = 92
|
||||||
Top = 56
|
Top = 96
|
||||||
Width = 402
|
Width = 402
|
||||||
Height = 21
|
Height = 21
|
||||||
Anchors = [akLeft, akTop, akRight]
|
Anchors = [akLeft, akTop, akRight]
|
||||||
@ -161,8 +160,8 @@ object MainForm: TMainForm
|
|||||||
OnKeyDown = edtExceptionKeyDown
|
OnKeyDown = edtExceptionKeyDown
|
||||||
end
|
end
|
||||||
object btnException: TButton
|
object btnException: TButton
|
||||||
Left = 500
|
Left = 92
|
||||||
Top = 56
|
Top = 123
|
||||||
Width = 75
|
Width = 75
|
||||||
Height = 21
|
Height = 21
|
||||||
Anchors = [akLeft, akTop, akRight]
|
Anchors = [akLeft, akTop, akRight]
|
||||||
@ -170,5 +169,35 @@ object MainForm: TMainForm
|
|||||||
TabOrder = 3
|
TabOrder = 3
|
||||||
OnClick = btnExceptionClick
|
OnClick = btnExceptionClick
|
||||||
end
|
end
|
||||||
|
object btnInfo: TButton
|
||||||
|
Left = 173
|
||||||
|
Top = 56
|
||||||
|
Width = 75
|
||||||
|
Height = 21
|
||||||
|
Anchors = [akLeft, akTop, akRight]
|
||||||
|
Caption = 'Info'
|
||||||
|
TabOrder = 4
|
||||||
|
OnClick = btnLogClick
|
||||||
|
end
|
||||||
|
object btnWarning: TButton
|
||||||
|
Left = 254
|
||||||
|
Top = 56
|
||||||
|
Width = 75
|
||||||
|
Height = 21
|
||||||
|
Anchors = [akLeft, akTop, akRight]
|
||||||
|
Caption = 'Warning'
|
||||||
|
TabOrder = 5
|
||||||
|
OnClick = btnLogClick
|
||||||
|
end
|
||||||
|
object btnError: TButton
|
||||||
|
Left = 335
|
||||||
|
Top = 56
|
||||||
|
Width = 75
|
||||||
|
Height = 21
|
||||||
|
Anchors = [akLeft, akTop, akRight]
|
||||||
|
Caption = 'Error'
|
||||||
|
TabOrder = 6
|
||||||
|
OnClick = btnLogClick
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -15,7 +15,7 @@ uses
|
|||||||
type
|
type
|
||||||
TMainForm = class(TForm)
|
TMainForm = class(TForm)
|
||||||
btnClose: TButton;
|
btnClose: TButton;
|
||||||
btnSend: TButton;
|
btnVerbose: TButton;
|
||||||
edtMessage: TEdit;
|
edtMessage: TEdit;
|
||||||
GroupBox1: TGroupBox;
|
GroupBox1: TGroupBox;
|
||||||
lblMessage: TLabel;
|
lblMessage: TLabel;
|
||||||
@ -29,11 +29,15 @@ type
|
|||||||
btnException: TButton;
|
btnException: TButton;
|
||||||
tsNamedPipe: TTabSheet;
|
tsNamedPipe: TTabSheet;
|
||||||
btnMonitorForm: TButton;
|
btnMonitorForm: TButton;
|
||||||
|
btnInfo: TButton;
|
||||||
|
btnWarning: TButton;
|
||||||
|
btnError: TButton;
|
||||||
|
|
||||||
procedure FormCreate(Sender: TObject);
|
procedure FormCreate(Sender: TObject);
|
||||||
procedure FormDestroy(Sender: TObject);
|
procedure FormDestroy(Sender: TObject);
|
||||||
procedure pcObserversChange(Sender: TObject);
|
procedure pcObserversChange(Sender: TObject);
|
||||||
procedure btnSendClick(Sender: TObject);
|
procedure btnCloseClick(Sender: TObject);
|
||||||
|
procedure btnLogClick(Sender: TObject);
|
||||||
procedure edtExceptionKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
|
procedure edtExceptionKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
|
||||||
procedure edtMessageKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
|
procedure edtMessageKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
|
||||||
procedure btnExceptionClick(Sender: TObject);
|
procedure btnExceptionClick(Sender: TObject);
|
||||||
@ -78,7 +82,9 @@ begin
|
|||||||
SetLogResourceString(@LogMonitorFormColumnMessage, 'Melding');
|
SetLogResourceString(@LogMonitorFormColumnMessage, 'Melding');
|
||||||
|
|
||||||
SetLogResourceString(@LogMonitorFormButtonClear, 'Wissen');
|
SetLogResourceString(@LogMonitorFormButtonClear, 'Wissen');
|
||||||
|
SetLogResourceString(@LogMonitorFormButtonCopyDetails, 'Kopieren');
|
||||||
SetLogResourceString(@LogMonitorFormButtonSaveDetails, 'Opslaan');
|
SetLogResourceString(@LogMonitorFormButtonSaveDetails, 'Opslaan');
|
||||||
|
SetLogResourceString(@LogMonitorFormStatusPaused, 'Gepauseerd: %d melding(en) overgeslagen');
|
||||||
|
|
||||||
FLog := TX2Log.Create;
|
FLog := TX2Log.Create;
|
||||||
FLog.SetExceptionStrategy(TX2LogmadExceptExceptionStrategy.Create);
|
FLog.SetExceptionStrategy(TX2LogmadExceptExceptionStrategy.Create);
|
||||||
@ -156,9 +162,22 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure TMainForm.btnSendClick(Sender: TObject);
|
procedure TMainForm.btnCloseClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
FLog.Info(edtMessage.Text);
|
Close;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure TMainForm.btnLogClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
if Sender = btnVerbose then
|
||||||
|
FLog.Verbose(edtMessage.Text)
|
||||||
|
else if Sender = btnInfo then
|
||||||
|
FLog.Info(edtMessage.Text)
|
||||||
|
else if Sender = btnWarning then
|
||||||
|
FLog.Warning(edtMessage.Text)
|
||||||
|
else if Sender = btnError then
|
||||||
|
FLog.Error(edtMessage.Text);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
@ -40,8 +40,12 @@ resourcestring
|
|||||||
|
|
||||||
{ Caption of the toolbar buttons }
|
{ Caption of the toolbar buttons }
|
||||||
LogMonitorFormButtonClear = 'Clear';
|
LogMonitorFormButtonClear = 'Clear';
|
||||||
|
LogMonitorFormButtonCopyDetails = 'Copy';
|
||||||
LogMonitorFormButtonSaveDetails = 'Save';
|
LogMonitorFormButtonSaveDetails = 'Save';
|
||||||
|
|
||||||
|
{ Status messages }
|
||||||
|
LogMonitorFormStatusPaused = 'Paused: %d log message(s) skipped';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function GetLogLevelText(ALogLevel: TX2LogLevel): string;
|
function GetLogLevelText(ALogLevel: TX2LogLevel): string;
|
||||||
|
@ -12,6 +12,7 @@ object X2LogObserverMonitorForm: TX2LogObserverMonitorForm
|
|||||||
Font.Style = []
|
Font.Style = []
|
||||||
OldCreateOrder = False
|
OldCreateOrder = False
|
||||||
Position = poScreenCenter
|
Position = poScreenCenter
|
||||||
|
ShowHint = True
|
||||||
OnClose = FormClose
|
OnClose = FormClose
|
||||||
OnShow = FormShow
|
OnShow = FormShow
|
||||||
PixelsPerInch = 96
|
PixelsPerInch = 96
|
||||||
@ -20,7 +21,7 @@ object X2LogObserverMonitorForm: TX2LogObserverMonitorForm
|
|||||||
Left = 634
|
Left = 634
|
||||||
Top = 0
|
Top = 0
|
||||||
Width = 6
|
Width = 6
|
||||||
Height = 500
|
Height = 496
|
||||||
Align = alRight
|
Align = alRight
|
||||||
ResizeStyle = rsUpdate
|
ResizeStyle = rsUpdate
|
||||||
ExplicitLeft = 637
|
ExplicitLeft = 637
|
||||||
@ -30,43 +31,45 @@ object X2LogObserverMonitorForm: TX2LogObserverMonitorForm
|
|||||||
Left = 640
|
Left = 640
|
||||||
Top = 0
|
Top = 0
|
||||||
Width = 350
|
Width = 350
|
||||||
Height = 500
|
Height = 496
|
||||||
Align = alRight
|
Align = alRight
|
||||||
BevelOuter = bvNone
|
BevelOuter = bvNone
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
ExplicitHeight = 519
|
ExplicitHeight = 500
|
||||||
object tbDetails: TToolBar
|
object tbDetails: TToolBar
|
||||||
Left = 0
|
Left = 0
|
||||||
Top = 0
|
Top = 0
|
||||||
Width = 350
|
Width = 350
|
||||||
Height = 22
|
Height = 22
|
||||||
AutoSize = True
|
AutoSize = True
|
||||||
ButtonWidth = 51
|
ButtonWidth = 52
|
||||||
Images = ilsLog
|
Images = ilsLog
|
||||||
List = True
|
List = True
|
||||||
ShowCaptions = True
|
ShowCaptions = True
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
object tbSaveDetails: TToolButton
|
object tbCopyDetails: TToolButton
|
||||||
Left = 0
|
Left = 0
|
||||||
Top = 0
|
Top = 0
|
||||||
Caption = 'Save'
|
Action = actCopyDetails
|
||||||
Enabled = False
|
AutoSize = True
|
||||||
ImageIndex = 5
|
end
|
||||||
|
object tbSaveDetails: TToolButton
|
||||||
|
Left = 56
|
||||||
|
Top = 0
|
||||||
|
Action = actSaveDetails
|
||||||
|
AutoSize = True
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
object pnlBorder: TPanel
|
object pnlBorder: TPanel
|
||||||
Left = 0
|
Left = 0
|
||||||
Top = 22
|
Top = 22
|
||||||
Width = 350
|
Width = 350
|
||||||
Height = 478
|
Height = 474
|
||||||
Align = alClient
|
Align = alClient
|
||||||
BevelKind = bkFlat
|
BevelKind = bkFlat
|
||||||
BevelOuter = bvNone
|
BevelOuter = bvNone
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
ExplicitLeft = 80
|
ExplicitHeight = 478
|
||||||
ExplicitTop = 240
|
|
||||||
ExplicitWidth = 185
|
|
||||||
ExplicitHeight = 41
|
|
||||||
object HeaderControl1: THeaderControl
|
object HeaderControl1: THeaderControl
|
||||||
Left = 0
|
Left = 0
|
||||||
Top = 0
|
Top = 0
|
||||||
@ -80,13 +83,12 @@ object X2LogObserverMonitorForm: TX2LogObserverMonitorForm
|
|||||||
Width = 346
|
Width = 346
|
||||||
end>
|
end>
|
||||||
NoSizing = True
|
NoSizing = True
|
||||||
ExplicitTop = 29
|
|
||||||
end
|
end
|
||||||
object reDetails: TRichEdit
|
object reDetails: TRichEdit
|
||||||
Left = 0
|
Left = 0
|
||||||
Top = 17
|
Top = 17
|
||||||
Width = 346
|
Width = 346
|
||||||
Height = 457
|
Height = 453
|
||||||
Align = alClient
|
Align = alClient
|
||||||
BorderStyle = bsNone
|
BorderStyle = bsNone
|
||||||
Font.Charset = ANSI_CHARSET
|
Font.Charset = ANSI_CHARSET
|
||||||
@ -99,8 +101,7 @@ object X2LogObserverMonitorForm: TX2LogObserverMonitorForm
|
|||||||
ReadOnly = True
|
ReadOnly = True
|
||||||
ScrollBars = ssBoth
|
ScrollBars = ssBoth
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
ExplicitTop = 29
|
ExplicitHeight = 457
|
||||||
ExplicitHeight = 486
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -108,19 +109,16 @@ object X2LogObserverMonitorForm: TX2LogObserverMonitorForm
|
|||||||
Left = 0
|
Left = 0
|
||||||
Top = 0
|
Top = 0
|
||||||
Width = 634
|
Width = 634
|
||||||
Height = 500
|
Height = 496
|
||||||
Align = alClient
|
Align = alClient
|
||||||
BevelOuter = bvNone
|
BevelOuter = bvNone
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
ExplicitLeft = 408
|
ExplicitHeight = 500
|
||||||
ExplicitTop = 256
|
|
||||||
ExplicitWidth = 185
|
|
||||||
ExplicitHeight = 41
|
|
||||||
object vstLog: TVirtualStringTree
|
object vstLog: TVirtualStringTree
|
||||||
Left = 0
|
Left = 0
|
||||||
Top = 22
|
Top = 22
|
||||||
Width = 634
|
Width = 634
|
||||||
Height = 478
|
Height = 474
|
||||||
Align = alClient
|
Align = alClient
|
||||||
Header.AutoSizeIndex = 2
|
Header.AutoSizeIndex = 2
|
||||||
Header.Font.Charset = DEFAULT_CHARSET
|
Header.Font.Charset = DEFAULT_CHARSET
|
||||||
@ -129,6 +127,7 @@ object X2LogObserverMonitorForm: TX2LogObserverMonitorForm
|
|||||||
Header.Font.Name = 'Tahoma'
|
Header.Font.Name = 'Tahoma'
|
||||||
Header.Font.Style = []
|
Header.Font.Style = []
|
||||||
Header.Options = [hoAutoResize, hoColumnResize, hoDrag, hoShowSortGlyphs, hoVisible, hoHeaderClickAutoSort]
|
Header.Options = [hoAutoResize, hoColumnResize, hoDrag, hoShowSortGlyphs, hoVisible, hoHeaderClickAutoSort]
|
||||||
|
HintMode = hmHint
|
||||||
Images = ilsLog
|
Images = ilsLog
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
TreeOptions.PaintOptions = [toHideFocusRect, toShowButtons, toShowDropmark, toThemeAware]
|
TreeOptions.PaintOptions = [toHideFocusRect, toShowButtons, toShowDropmark, toThemeAware]
|
||||||
@ -137,10 +136,9 @@ object X2LogObserverMonitorForm: TX2LogObserverMonitorForm
|
|||||||
OnFreeNode = vstLogFreeNode
|
OnFreeNode = vstLogFreeNode
|
||||||
OnGetText = vstLogGetText
|
OnGetText = vstLogGetText
|
||||||
OnGetImageIndex = vstLogGetImageIndex
|
OnGetImageIndex = vstLogGetImageIndex
|
||||||
|
OnGetHint = vstLogGetHint
|
||||||
OnInitNode = vstLogInitNode
|
OnInitNode = vstLogInitNode
|
||||||
ExplicitTop = 0
|
ExplicitHeight = 478
|
||||||
ExplicitWidth = 637
|
|
||||||
ExplicitHeight = 519
|
|
||||||
Columns = <
|
Columns = <
|
||||||
item
|
item
|
||||||
Options = [coAllowClick, coDraggable, coEnabled, coParentBidiMode, coParentColor, coShowDropMark, coVisible, coAllowFocus]
|
Options = [coAllowClick, coDraggable, coEnabled, coParentBidiMode, coParentColor, coShowDropMark, coVisible, coAllowFocus]
|
||||||
@ -164,40 +162,173 @@ object X2LogObserverMonitorForm: TX2LogObserverMonitorForm
|
|||||||
Width = 634
|
Width = 634
|
||||||
Height = 22
|
Height = 22
|
||||||
AutoSize = True
|
AutoSize = True
|
||||||
ButtonWidth = 52
|
ButtonWidth = 56
|
||||||
Caption = 'tbLog'
|
Caption = 'tbLog'
|
||||||
Images = ilsLog
|
Images = ilsLog
|
||||||
List = True
|
List = True
|
||||||
ShowCaptions = True
|
ShowCaptions = True
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
ExplicitWidth = 637
|
|
||||||
object tbClear: TToolButton
|
object tbClear: TToolButton
|
||||||
Left = 0
|
Left = 0
|
||||||
Top = 0
|
Top = 0
|
||||||
|
Action = actClear
|
||||||
AutoSize = True
|
AutoSize = True
|
||||||
Caption = 'Clear'
|
end
|
||||||
Enabled = False
|
object tbPause: TToolButton
|
||||||
ImageIndex = 6
|
Left = 56
|
||||||
OnClick = tbClearClick
|
Top = 0
|
||||||
|
Action = actPause
|
||||||
|
Style = tbsCheck
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
object sbStatus: TStatusBar
|
object sbStatus: TStatusBar
|
||||||
|
AlignWithMargins = True
|
||||||
Left = 0
|
Left = 0
|
||||||
Top = 500
|
Top = 500
|
||||||
Width = 990
|
Width = 990
|
||||||
Height = 19
|
Height = 19
|
||||||
|
Margins.Left = 0
|
||||||
|
Margins.Top = 4
|
||||||
|
Margins.Right = 0
|
||||||
|
Margins.Bottom = 0
|
||||||
Panels = <>
|
Panels = <>
|
||||||
ExplicitLeft = 504
|
SimplePanel = True
|
||||||
ExplicitTop = 272
|
|
||||||
ExplicitWidth = 0
|
|
||||||
end
|
end
|
||||||
object ilsLog: TImageList
|
object ilsLog: TImageList
|
||||||
Left = 584
|
Left = 584
|
||||||
Top = 48
|
Top = 48
|
||||||
Bitmap = {
|
Bitmap = {
|
||||||
494C010107004000540010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
|
494C0101090040007C0010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
|
||||||
0000000000003600000028000000400000002000000001002000000000000020
|
0000000000003600000028000000400000003000000001002000000000000030
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000B5845800D074
|
||||||
|
1100CD6E0900D1720900C98546000000000000000000C6824500CF720D00CD6E
|
||||||
|
0900D1720900B886590000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000CD711100FFAD
|
||||||
|
1400FF9F0100FFA30000E27A00000000000000000000E07E0C00FFAA0F00FF9F
|
||||||
|
0100FFA30000D172090000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000C9660600FF9F
|
||||||
|
0100FD960000FF9F0100DD7700000000000000000000D6710100FD960000FD96
|
||||||
|
0000FF9F0100CF6D060000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000C35F0600F48E
|
||||||
|
0000F48E0000FD960000DD7700000000000000000000D06A0000F6900000F48E
|
||||||
|
0000FF9F0100C966060000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000BE5C0600EE88
|
||||||
|
0000EC860000F48E0000D06A00000000000000000000C9660600EC860000EC86
|
||||||
|
0000F48E0000C966060000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000BE5C0600E27A
|
||||||
|
0000E27A0000EE880000CF6D06000000000000000000C35F0600E27A0000EC86
|
||||||
|
0000EC860000C35F060000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000B14F0600DE78
|
||||||
|
0000DE780000E27A0000C96606000000000000000000C35F0600DD770000DD77
|
||||||
|
0000E27A0000BE5C060000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000B14F0600D06A
|
||||||
|
0000DD770000DD770000C35F06000000000000000000BA540100D06A0000DD77
|
||||||
|
0000DD770000BA54010000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000AD4C0C00D172
|
||||||
|
0900C9660600D06A0000BA5401000000000000000000B6540A00D06F0C00C966
|
||||||
|
0600D06A0000BA54010000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000AD4C0C00D382
|
||||||
|
3700CD721D00D0741100BE5C06000000000000000000B3561500D07F3300CD72
|
||||||
|
1D00D0741100B14F060000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000A5491300D795
|
||||||
|
5E00D0854400D68B4300B75A16000000000000000000B1592000D7955E00D382
|
||||||
|
3700D68B4300AD4C0C0000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000A4491900DDAD
|
||||||
|
8700D59A6B00D9A06D00B15920000000000000000000B15D2A00DDAD8700D59A
|
||||||
|
6B00D9A06D00A94D150000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000A7522700EED8
|
||||||
|
C600E6C4A800ECCCAF00B96939000000000000000000B7673A00EED6C100E6C4
|
||||||
|
A800ECCCAF00AB57280000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000A16C5600A449
|
||||||
|
19009F441200A4491900AA6544000000000000000000AA654400A44919009F44
|
||||||
|
1200A4491900A26E580000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
0000000000000000000000000000000000000000000000000000000000000000
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
0000000000000000000000000000000000000000000000000000000000000000
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
0000000000000000000000000000000000000000000000000000000000000000
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
@ -212,113 +343,113 @@ object X2LogObserverMonitorForm: TX2LogObserverMonitorForm
|
|||||||
1100895E4600A7ABAB00B9B2AB00C8C7C300C9C9CC00AFAFAF0099A2A8008238
|
1100895E4600A7ABAB00B9B2AB00C8C7C300C9C9CC00AFAFAF0099A2A8008238
|
||||||
0D00A7471100A34B2100A47763000000000000000000000000002427AE00161C
|
0D00A7471100A34B2100A47763000000000000000000000000002427AE00161C
|
||||||
AC005A5AA90000000000000000000000000000000000000000005353A9004F4F
|
AC005A5AA90000000000000000000000000000000000000000005353A9004F4F
|
||||||
A200000000000000000000000000000000000000000000000000000000000000
|
A20000000000000000000000000000000000000000009B7C6B009B7C6B009B7C
|
||||||
0000000000000000000000000000000000000000000000000000000000000000
|
6B009B7C6B009B7C6B009B7C6B009B7C6B009B7C6B009B7C6B009B7C6B000000
|
||||||
00000000000000000000000000000000000000000000000000009B776600FFFF
|
00000000000000000000000000000000000000000000000000009B776600FFFF
|
||||||
FF00FAF4E900FAF4E900FAF4E900FAF4E900FAF4E900FAF4E900FAF4E900F9EF
|
FF00FAF4E900FAF4E900FAF4E900FAF4E900FAF4E900FAF4E900FAF4E900F9EF
|
||||||
E000F9EFE00097796700000000000000000000000000BC764500BE631700CD79
|
E000F9EFE00097796700000000000000000000000000BC764500BE631700CD79
|
||||||
27009E877000B9875900CE700D00DCAF7A00FEFFFF00FEFFFF00D9E2EA00AD70
|
27009E877000B9875900CE700D00DCAF7A00FEFFFF00FEFFFF00D9E2EA00AD70
|
||||||
2400DD943500ECBE7500A4450E0000000000000000004E4EAB001844F600194D
|
2400DD943500ECBE7500A4450E0000000000000000004E4EAB001844F600194D
|
||||||
F8001031D2002427AE000000000000000000000000004E4EAB000928D7000928
|
F8001031D2002427AE000000000000000000000000004E4EAB000928D7000928
|
||||||
D7000313B3004E4EAB0000000000000000000000000000000000000000000000
|
D7000313B3004E4EAB000000000000000000000000009B776600FFFFFF00FBF5
|
||||||
0000000000000000000000000000000000000000000000000000000000000000
|
EC00FBF5EC00FBF5EC00FBF5EC00FAF3E600FBF5EC00F8EDDA00977967000000
|
||||||
0000000000000000000000000000000000000000000000000000A27F6F00FFFF
|
0000000000000000000000000000000000000000000000000000A27F6F00FFFF
|
||||||
FF00DDC1B400DDC1B400DDC1B400DDC1B400DDBEAD00DDBEAD00DCBAA500DCBA
|
FF00DDC1B400DDC1B400DDC1B400DDC1B400DDBEAD00DDBEAD00DCBAA500DCBA
|
||||||
A500F9EFE00097796700000000000000000000000000C9680D00C0702800C36C
|
A500F9EFE00097796700000000000000000000000000C9680D00C0702800C36C
|
||||||
1E00A7876B00AE7C5A00BA580900C69A6C00D9DFE500FEFFFF00F4F9FC00A363
|
1E00A7876B00AE7C5A00BA580900C69A6C00D9DFE500FEFFFF00F4F9FC00A363
|
||||||
1D00D5872D00E5AF6900A4450E0000000000000000002022B1002451F9001F52
|
1D00D5872D00E5AF6900A4450E0000000000000000002022B1002451F9001F52
|
||||||
FF00194DF8001744E8001017AF00000000004747AC000928D7001344F9001041
|
FF00194DF8001744E8001017AF00000000004747AC000928D7001344F9001041
|
||||||
F6000E3EF600041ABC006F6FAA00000000000000000000000000000000000000
|
F6000E3EF600041ABC006F6FAA000000000000000000A3807000FFFFFF00DBC3
|
||||||
0000000000000000000000000000000000000000000000000000000000000000
|
BB00DBC1B700DBBFB200DBBDAF00DBBDAF00DAB8A500FAF3E60097796700B081
|
||||||
0000000000000000000000000000000000000000000000000000A3807000FFFF
|
8F00975668009653640097566800000000000000000000000000A3807000FFFF
|
||||||
FF00DBC4BD00DBC4BD00DDC1B400DDC1B400DDBEAD00DDBEAD00DCBAA500DCBA
|
FF00DBC4BD00DBC4BD00DDC1B400DDC1B400DDBEAD00DDBEAD00DCBAA500DCBA
|
||||||
A500FAF4E9009B7C6C00000000000000000000000000C9680D00BB682300BF66
|
A500FAF4E9009B7C6C00000000000000000000000000C9680D00BB682300BF66
|
||||||
1900B4906E00B37C6000AF490000B5875E00BFC6CD00D5DEE400FEFFFF00A363
|
1900B4906E00B37C6000AF490000B5875E00BFC6CD00D5DEE400FEFFFF00A363
|
||||||
1D00D5872D00E5AF6900A4450E000000000000000000000000001832DB00295A
|
1D00D5872D00E5AF6900A4450E000000000000000000000000001832DB00295A
|
||||||
FF002451F9002451F9001A4AF200060EAF000F30DD00164AFE001344F9001041
|
FF002451F9002451F9001A4AF200060EAF000F30DD00164AFE001344F9001041
|
||||||
F6000E3EF6000E3EF6002C2CA200000000000000000000000000000000000000
|
F6000E3EF6000E3EF6002C2CA2000000000000000000A9877800FFFFFF00DBC7
|
||||||
0000000000000000000000000000000000000000000000000000000000000000
|
C200DBC3BB00DBC1B700DBBFB200DBBDAF00DAB8A500FBF5EC009B7C6B00E3CF
|
||||||
0000000000000000000000000000000000000000000000000000A9877800FFFF
|
D000E3CFD000E2C2C20096536400000000000000000000000000A9877800FFFF
|
||||||
FF00DBC6C200DBC4BD00DBC4BD00DDC1B400DBBFB400DCBAA500DDBEAD00DDBE
|
FF00DBC6C200DBC4BD00DBC4BD00DDC1B400DBBFB400DCBAA500DDBEAD00DDBE
|
||||||
AD00FAF4E90097796700000000000000000000000000C9680D00BF661900BF66
|
AD00FAF4E90097796700000000000000000000000000C9680D00BF661900BF66
|
||||||
1900B07D5800C1BFBD00B0ACA80098918B009A8E8400A3978A00AEA79F009058
|
1900B07D5800C1BFBD00B0ACA80098918B009A8E8400A3978A00AEA79F009058
|
||||||
1F00A7672300DA954200A4450E0000000000000000007777B3001832DB003A6F
|
1F00A7672300DA954200A4450E0000000000000000007777B3001832DB003A6F
|
||||||
FF00295AFF00295AFF00295AFF002451F900194DF800194DF8001344F9001344
|
FF00295AFF00295AFF00295AFF002451F900194DF800194DF8001344F9001344
|
||||||
F9000E3EF600161CAC0000000000000000000000000000000000000000000000
|
F9000E3EF600161CAC00000000000000000000000000AB897A00FFFFFF00DBC7
|
||||||
0000000000000000000000000000000000000000000000000000000000000000
|
C200DBC3BB00DBC3BB00DBBFB200DBBDAF00DAB8A500FBF5EC009B7C6B00D4AE
|
||||||
0000000000000000000000000000000000000000000000000000AB897A00FFFF
|
B900CB90A100E3CFD00096536400000000000000000000000000AB897A00FFFF
|
||||||
FF00DBC6C200DBC6C200DBC4BD00DBC4BD00DBBFB400DCBAA500DDBEAD00DCBA
|
FF00DBC6C200DBC6C200DBC4BD00DBC4BD00DBBFB400DCBAA500DDBEAD00DCBA
|
||||||
A500FAF4E9009B7C6C00000000000000000000000000C9670A00B55D1B00B55D
|
A500FAF4E9009B7C6C00000000000000000000000000C9670A00B55D1B00B55D
|
||||||
1B00BA580900BA580900BA580900C2620E00C5671000C8691300C8691300CD79
|
1B00BA580900BA580900BA580900C2620E00C5671000C8691300C8691300CD79
|
||||||
2700D07F2A00D3893200A4450E000000000000000000000000006B6BB6001A25
|
2700D07F2A00D3893200A4450E000000000000000000000000006B6BB6001A25
|
||||||
C5003A6FFF003668FF00295AFF00295AFF002451F900194DF8001F52FF00123D
|
C5003A6FFF003668FF00295AFF00295AFF002451F900194DF8001F52FF00123D
|
||||||
ED002427AE000000000000000000000000000000000000000000000000000000
|
ED002427AE0000000000000000000000000000000000AB897A00FFFFFF00DBC7
|
||||||
0000000000000000000000000000000000000000000000000000000000000000
|
C200DBC3BB00DBC3BB00DBBFB200DBBDAF00DBBFB200FBF5EC009B7C6B00D4AE
|
||||||
0000000000000000000000000000000000000000000000000000AB897A00FFFF
|
B900CB90A100E4D0D00096536400000000000000000000000000AB897A00FFFF
|
||||||
FF00DBC6C200DBC4BD00DBC4BD00DBC4BD00DDC1B400DBBFB400DCBAA500DDBE
|
FF00DBC6C200DBC4BD00DBC4BD00DBC4BD00DDC1B400DBBFB400DCBAA500DDBE
|
||||||
AD00FAF4E9009B7C6C00000000000000000000000000C9680D00B0551400B169
|
AD00FAF4E9009B7C6C00000000000000000000000000C9680D00B0551400B169
|
||||||
3300AF714200AF714200AF714200B0764200B0764200B0764200B0764200B076
|
3300AF714200AF714200AF714200B0764200B0764200B0764200B0764200B076
|
||||||
4200BD804100D5872D00A4450E00000000000000000000000000000000000000
|
4200BD804100D5872D00A4450E00000000000000000000000000000000000000
|
||||||
00002F2FB3002E4EE7003668FF00295AFF00295AFF002451F900123DED002C2C
|
00002F2FB3002E4EE7003668FF00295AFF00295AFF002451F900123DED002C2C
|
||||||
A200000000000000000000000000000000000000000000000000000000000000
|
A2000000000000000000000000000000000000000000AF8F8000FFFFFF00FFFF
|
||||||
0000000000000000000000000000000000000000000000000000000000000000
|
FF00FFFFFF00FFFFFF00FDFAF600FDFAF600FDFAF600FBF5EC009B7C6B00D5B1
|
||||||
0000000000000000000000000000000000000000000000000000B1908000FFFF
|
BC00CB90A100E4D0D00098576B00000000000000000000000000B1908000FFFF
|
||||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FCF9F500FCF9F500FCF9F500FAF4
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FCF9F500FCF9F500FCF9F500FAF4
|
||||||
E900FAF4E9009B7C6C00000000000000000000000000C2620E00AF490000B39D
|
E900FAF4E9009B7C6C00000000000000000000000000C2620E00AF490000B39D
|
||||||
8900E6F2FB00E4EDF300E4EDF300E4EDF300E1E9EF00D9E2EA00DFE3E600D9E2
|
8900E6F2FB00E4EDF300E4EDF300E4EDF300E1E9EF00D9E2EA00DFE3E600D9E2
|
||||||
EA00AD9A8A00D07F2600A4450E00000000000000000000000000000000000000
|
EA00AD9A8A00D07F2600A4450E00000000000000000000000000000000000000
|
||||||
000000000000253FDF003A6FFF003668FF00295AFF00295AFF001B46EA002427
|
000000000000253FDF003A6FFF003668FF00295AFF00295AFF001B46EA002427
|
||||||
AE00000000000000000000000000000000000000000000000000000000000000
|
AE000000000000000000000000000000000000000000AF8F8000FFFFFF00DFCE
|
||||||
0000000000000000000000000000000000000000000000000000000000000000
|
CC00DBC7C200DBC7C200DBC3BB00DBC1B700DBBDAF00F0E8E0009F807000D5B1
|
||||||
0000000000000000000000000000000000000000000000000000AF8F8000FFFF
|
BC00CB90A100E4DBDB0096536400000000000000000000000000AF8F8000FFFF
|
||||||
FF00DFCDCB00DFCDCB00DBC6C200DBC4BD00DBC4BD00DDC1B400DDBEAD00DDBE
|
FF00DFCDCB00DFCDCB00DBC6C200DBC4BD00DBC4BD00DDC1B400DDBEAD00DDBE
|
||||||
AD00FCF9F5009B7C6C00000000000000000000000000C9670A00A8430300B899
|
AD00FCF9F5009B7C6C00000000000000000000000000C9670A00A8430300B899
|
||||||
8400FEFFFF00D4D3D200BEBDBC00C1BFBD00C1BFBD00C2C1C000C9C9CC00DFE3
|
8400FEFFFF00D4D3D200BEBDBC00C1BFBD00C1BFBD00C2C1C000C9C9CC00DFE3
|
||||||
E600B19B8500CD792700A4450E00000000000000000000000000000000000000
|
E600B19B8500CD792700A4450E00000000000000000000000000000000000000
|
||||||
00002B2CC0004B7CFF004170FF003A6FFF003A6FFF00295AFF00295AFF001031
|
00002B2CC0004B7CFF004170FF003A6FFF003A6FFF00295AFF00295AFF001031
|
||||||
D2004A4AB2000000000000000000000000000000000000000000000000000000
|
D2004A4AB20000000000000000000000000000000000AF8F8000FFFFFF00FFFF
|
||||||
0000000000000000000000000000000000000000000000000000000000000000
|
FF00FFFFFF00FFFFFF00FFFFFF00A3807000A3807000A3807000A3807000E4DB
|
||||||
0000000000000000000000000000000000000000000000000000B1908000FFFF
|
DB00E4DBDB00E4D0D0009A5B6E00000000000000000000000000B1908000FFFF
|
||||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FCF9F500FCF9F500FAF4
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FCF9F500FCF9F500FAF4
|
||||||
E900F0E8E0009B7C6C00000000000000000000000000C2620E00A23C0000B899
|
E900F0E8E0009B7C6C00000000000000000000000000C2620E00A23C0000B899
|
||||||
8400FEFFFF00E4EDF300EEEEEE00EEEEEE00EEEEEE00E5E4E300DFE3E600E5E4
|
8400FEFFFF00E4EDF300EEEEEE00EEEEEE00EEEEEE00E5E4E300DFE3E600E5E4
|
||||||
E300AD9A8A00CD792700A4450E00000000000000000000000000000000000000
|
E300AD9A8A00CD792700A4450E00000000000000000000000000000000000000
|
||||||
0000253FDF00527CFA004170FF003464FF000C13C1004170FF00295AFF002451
|
0000253FDF00527CFA004170FF003464FF000C13C1004170FF00295AFF002451
|
||||||
F9000B1DC2000000000000000000000000000000000000000000000000000000
|
F9000B1DC20000000000000000000000000000000000B8988800FFFFFF00FFFF
|
||||||
0000000000000000000000000000000000000000000000000000000000000000
|
FF00FFFFFF00FFFFFF00FDFAF600A3807000F5E2D900B18E7E00C39C9F00D4AE
|
||||||
0000000000000000000000000000000000000000000000000000B1908000FFFF
|
B900CE98A700DFCECC0097566800000000000000000000000000B1908000FFFF
|
||||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FCF9F500A3807000A380
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FCF9F500A3807000A380
|
||||||
7000A3807000A3807000000000000000000000000000C2620E00A23C0000BC9C
|
7000A3807000A3807000000000000000000000000000C2620E00A23C0000BC9C
|
||||||
8A00FEFFFF00DDDCDB00C1BFBD00C2C1C000C2C1C000C1BFBD00C9C9CC00E1E9
|
8A00FEFFFF00DDDCDB00C1BFBD00C2C1C000C2C1C000C1BFBD00C9C9CC00E1E9
|
||||||
EF00B19B8500CD771F00A4450E00000000000000000000000000000000004F4F
|
EF00B19B8500CD771F00A4450E00000000000000000000000000000000004F4F
|
||||||
BD00527CFA005081FF004B7CFF001A25C500000000001A25C5003A6FFF002451
|
BD00527CFA005081FF004B7CFF001A25C500000000001A25C5003A6FFF002451
|
||||||
F9001A4AF2001419B10000000000000000000000000000000000000000000000
|
F9001A4AF2001419B100000000000000000000000000B8988800FFFFFF00FFFF
|
||||||
0000000000000000000000000000000000000000000000000000000000000000
|
FF00FFFFFF00FFFFFF00FFFFFF00A3807000B18E7E00CFC3BD00E6E2E200A25B
|
||||||
0000000000000000000000000000000000000000000000000000B8988800FFFF
|
7100A25B7100A25B7100A25B7100000000000000000000000000B8988800FFFF
|
||||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FCF9F500FFFFFF00A3807000F5E2
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FCF9F500FFFFFF00A3807000F5E2
|
||||||
D900B08E7D00AB9E9800000000000000000000000000C2620E009A310000BC9C
|
D900B08E7D00AB9E9800000000000000000000000000C2620E009A310000BC9C
|
||||||
8A00FEFFFF00FEFFFF00EEEEEE00EEEEEE00EEEEEE00E5E4E300E5E4E300EEEE
|
8A00FEFFFF00FEFFFF00EEEEEE00EEEEEE00EEEEEE00E5E4E300E5E4E300EEEE
|
||||||
EE00B39D8900C2701D00A9480D0000000000000000000000000000000000252D
|
EE00B39D8900C2701D00A9480D0000000000000000000000000000000000252D
|
||||||
D6006A9CFF005788FF002B46E7006B6BB60000000000000000001A25C500295A
|
D6006A9CFF005788FF002B46E7006B6BB60000000000000000001A25C500295A
|
||||||
FF002451F9001439DD004747AC00000000000000000000000000000000000000
|
FF002451F9001439DD004747AC000000000000000000B8988800B8988800AF8F
|
||||||
0000000000000000000000000000000000000000000000000000000000000000
|
8000B18E7E00B18E7E00AC887700A3807000CFC3BD00E6E2E200E6E2E200A25B
|
||||||
0000000000000000000000000000000000000000000000000000B8988800FFFF
|
7100E0C1CA00AA697E00A9919800000000000000000000000000B8988800FFFF
|
||||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00A3807000B08E
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00A3807000B08E
|
||||||
7D00AB9E980000000000000000000000000000000000C562060093280000BC9C
|
7D00AB9E980000000000000000000000000000000000C562060093280000BC9C
|
||||||
8A00FEFFFF00E5E4E300D1CFCC00D1CFCC00C9C9CC00D1CFCC00D4D3D200E4ED
|
8A00FEFFFF00E5E4E300D1CFCC00D1CFCC00C9C9CC00D1CFCC00D4D3D200E4ED
|
||||||
F300B9A38C008A4F1400B0551400000000000000000000000000000000004B4B
|
F300B9A38C008A4F1400B0551400000000000000000000000000000000004B4B
|
||||||
C8003951E2005081FF002B2CC000000000000000000000000000000000001628
|
C8003951E2005081FF002B2CC000000000000000000000000000000000001628
|
||||||
D300265AFF000F2EE3002022B100000000000000000000000000000000000000
|
D300265AFF000F2EE3002022B100000000000000000000000000000000000000
|
||||||
0000000000000000000000000000000000000000000000000000000000000000
|
000000000000C194A300E6E2E200E6E2E200E6E2E200E6E2E200E6E2E200A25B
|
||||||
0000000000000000000000000000000000000000000000000000B8988800B898
|
7100AA697E00A991980000000000000000000000000000000000B8988800B898
|
||||||
8800B1908000B1908000B08E7D00B08E7D00AC887700AC887700A3807000AB9E
|
8800B1908000B1908000B08E7D00B08E7D00AC887700AC887700A3807000AB9E
|
||||||
98000000000000000000000000000000000000000000BF8D5800C0540200C8A4
|
98000000000000000000000000000000000000000000BF8D5800C0540200C8A4
|
||||||
8300D4D3D200D4D3D200D4D3D200D4D3D200C9C9CC00C8C7C300C1BFBD00BEBD
|
8300D4D3D200D4D3D200D4D3D200D4D3D200C9C9CC00C8C7C300C1BFBD00BEBD
|
||||||
BC00B1947B00C0540200B07D5800000000000000000000000000000000000000
|
BC00B1947B00C0540200B07D5800000000000000000000000000000000000000
|
||||||
0000000000003E3EB90000000000000000000000000000000000000000006B6B
|
0000000000003E3EB90000000000000000000000000000000000000000006B6B
|
||||||
B6002F2FB3000000000000000000000000000000000000000000000000000000
|
B6002F2FB3000000000000000000000000000000000000000000000000000000
|
||||||
0000000000000000000000000000000000000000000000000000000000000000
|
000000000000AF728500AF728500AC6D8000AC6D8000AC6D8000A6627600A25B
|
||||||
0000000000000000000000000000000000000000000000000000000000000000
|
7100A99198000000000000000000000000000000000000000000000000000000
|
||||||
0000000000000000000000000000000000000000000000000000000000000000
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
0000000000000000000000000000000000000000000000000000000000000000
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
0000000000000000000000000000000000000000000000000000000000000000
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
@ -455,16 +586,46 @@ object X2LogObserverMonitorForm: TX2LogObserverMonitorForm
|
|||||||
0000000000000000000000000000000000000000000000000000000000000000
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
0000000000000000000000000000000000000000000000000000000000000000
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
000000000000000000000000000000000000424D3E000000000000003E000000
|
000000000000000000000000000000000000424D3E000000000000003E000000
|
||||||
2800000040000000200000000100010000000000000100000000000000000000
|
2800000040000000300000000100010000000000800100000000000000000000
|
||||||
000000000000000000000000FFFFFF00FFFFFFFFFFFF0000C003C001C7CF0000
|
000000000000000000000000FFFFFF00FFFF000000000000C183000000000000
|
||||||
C003800183830000C003800181010000C0038001C0010000C003800180030000
|
C183000000000000C183000000000000C183000000000000C183000000000000
|
||||||
C0038001C0070000C0038001F00F0000C0038001F80F0000C0038001F0070000
|
C183000000000000C183000000000000C183000000000000C183000000000000
|
||||||
C0038001F0070000C0038001E0830000C0038001E0C10000C0078001E1E10000
|
C183000000000000C183000000000000C183000000000000C183000000000000
|
||||||
C00F8001FBE70000FFFFFFFFFFFF0000FFFFFFFFFFFFFFFFF81FF81FFFFF8001
|
C183000000000000FFFF000000000000FFFFFFFFFFFFFFFFC003C001C7CF801F
|
||||||
|
C00380018383801FC003800181018001C0038001C0018001C003800180038001
|
||||||
|
C0038001C0078001C0038001F00F8001C0038001F80F8001C0038001F0078001
|
||||||
|
C0038001F0078001C0038001E0838001C0038001E0C18001C0078001E1E1F803
|
||||||
|
C00F8001FBE7F807FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81FF81FFFFF8001
|
||||||
F00FF00F80038001E007E00780018001C003C003800180018001800180018001
|
F00FF00F80038001E007E00780018001C003C003800180018001800180018001
|
||||||
80018001C003800180018001E003800180018001E007800180018001F00F8001
|
80018001C003800180018001E003800180018001E007800180018001F00F8001
|
||||||
80018001F00F8001C003C003F81F8001E007C007F81F8001F00FE00FFC3F8001
|
80018001F00F8001C003C003F81F8001E007C007F81F8001F00FE00FFC3F8001
|
||||||
F81FF81FFE7F8001FFFFFFFFFFFFFFFF00000000000000000000000000000000
|
F81FF81FFE7F8001FFFFFFFFFFFFFFFF00000000000000000000000000000000
|
||||||
000000000000}
|
000000000000}
|
||||||
end
|
end
|
||||||
|
object alLog: TActionList
|
||||||
|
Images = ilsLog
|
||||||
|
Left = 512
|
||||||
|
Top = 48
|
||||||
|
object actClear: TAction
|
||||||
|
Caption = 'Clear'
|
||||||
|
ImageIndex = 6
|
||||||
|
OnExecute = actClearExecute
|
||||||
|
end
|
||||||
|
object actCopyDetails: TAction
|
||||||
|
Caption = 'Copy'
|
||||||
|
ImageIndex = 7
|
||||||
|
OnExecute = actCopyDetailsExecute
|
||||||
|
end
|
||||||
|
object actSaveDetails: TAction
|
||||||
|
Caption = 'Save'
|
||||||
|
ImageIndex = 5
|
||||||
|
Visible = False
|
||||||
|
end
|
||||||
|
object actPause: TAction
|
||||||
|
AutoCheck = True
|
||||||
|
Caption = 'Pause'
|
||||||
|
ImageIndex = 8
|
||||||
|
OnExecute = actPauseExecute
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
@ -1,18 +1,20 @@
|
|||||||
unit X2Log.Observer.MonitorForm;
|
unit X2Log.Observer.MonitorForm;
|
||||||
|
|
||||||
// #ToDo3 -oMvR: 20-5-2014: pause button
|
|
||||||
|
|
||||||
interface
|
interface
|
||||||
uses
|
uses
|
||||||
System.Classes,
|
System.Classes,
|
||||||
System.Generics.Collections,
|
System.Generics.Collections,
|
||||||
|
Vcl.ComCtrls,
|
||||||
Vcl.Controls,
|
Vcl.Controls,
|
||||||
|
Vcl.ExtCtrls,
|
||||||
Vcl.Forms,
|
Vcl.Forms,
|
||||||
Vcl.ImgList,
|
Vcl.ImgList,
|
||||||
|
Vcl.StdCtrls,
|
||||||
|
Vcl.ToolWin,
|
||||||
VirtualTrees,
|
VirtualTrees,
|
||||||
Winapi.Messages,
|
Winapi.Messages,
|
||||||
|
|
||||||
X2Log.Intf, Vcl.StdCtrls, Vcl.ComCtrls, Vcl.ExtCtrls, Vcl.ToolWin;
|
X2Log.Intf, Vcl.ActnList;
|
||||||
|
|
||||||
|
|
||||||
const
|
const
|
||||||
@ -34,21 +36,34 @@ type
|
|||||||
tbClear: TToolButton;
|
tbClear: TToolButton;
|
||||||
tbSaveDetails: TToolButton;
|
tbSaveDetails: TToolButton;
|
||||||
sbStatus: TStatusBar;
|
sbStatus: TStatusBar;
|
||||||
|
tbCopyDetails: TToolButton;
|
||||||
|
alLog: TActionList;
|
||||||
|
actClear: TAction;
|
||||||
|
actCopyDetails: TAction;
|
||||||
|
actSaveDetails: TAction;
|
||||||
|
actPause: TAction;
|
||||||
|
tbPause: TToolButton;
|
||||||
|
|
||||||
procedure FormShow(Sender: TObject);
|
procedure FormShow(Sender: TObject);
|
||||||
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
||||||
procedure vstLogInitNode(Sender: TBaseVirtualTree; ParentNode, Node: PVirtualNode; var InitialStates: TVirtualNodeInitStates);
|
procedure vstLogInitNode(Sender: TBaseVirtualTree; ParentNode, Node: PVirtualNode; var InitialStates: TVirtualNodeInitStates);
|
||||||
procedure vstLogFreeNode(Sender: TBaseVirtualTree; Node: PVirtualNode);
|
procedure vstLogFreeNode(Sender: TBaseVirtualTree; Node: PVirtualNode);
|
||||||
procedure vstLogGetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType; var CellText: string);
|
procedure vstLogGetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType; var CellText: string);
|
||||||
|
procedure vstLogGetHint(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; var LineBreakStyle: TVTTooltipLineBreakStyle; var HintText: string);
|
||||||
procedure vstLogGetImageIndex(Sender: TBaseVirtualTree; Node: PVirtualNode; Kind: TVTImageKind; Column: TColumnIndex; var Ghosted: Boolean; var ImageIndex: Integer);
|
procedure vstLogGetImageIndex(Sender: TBaseVirtualTree; Node: PVirtualNode; Kind: TVTImageKind; Column: TColumnIndex; var Ghosted: Boolean; var ImageIndex: Integer);
|
||||||
procedure vstLogFocusChanged(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex);
|
procedure vstLogFocusChanged(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex);
|
||||||
procedure tbClearClick(Sender: TObject);
|
procedure actClearExecute(Sender: TObject);
|
||||||
|
procedure actCopyDetailsExecute(Sender: TObject);
|
||||||
|
procedure actPauseExecute(Sender: TObject);
|
||||||
private class var
|
private class var
|
||||||
FInstances: TDictionary<IX2Log,TX2LogObserverMonitorForm>;
|
FInstances: TDictionary<IX2Log,TX2LogObserverMonitorForm>;
|
||||||
private
|
private
|
||||||
FFreeOnClose: Boolean;
|
FFreeOnClose: Boolean;
|
||||||
FLogToAttach: IX2Log;
|
FLogToAttach: IX2Log;
|
||||||
FLogAttached: Boolean;
|
FLogAttached: Boolean;
|
||||||
|
FPausedLogCount: Integer;
|
||||||
|
|
||||||
|
function GetPaused: Boolean;
|
||||||
protected
|
protected
|
||||||
class function GetInstance(ALog: IX2Log; out AForm: TX2LogObserverMonitorForm): Boolean;
|
class function GetInstance(ALog: IX2Log; out AForm: TX2LogObserverMonitorForm): Boolean;
|
||||||
class procedure RemoveInstance(AForm: TX2LogObserverMonitorForm);
|
class procedure RemoveInstance(AForm: TX2LogObserverMonitorForm);
|
||||||
@ -59,8 +74,13 @@ type
|
|||||||
procedure WMEnable(var Msg: TWMEnable); message WM_ENABLE;
|
procedure WMEnable(var Msg: TWMEnable); message WM_ENABLE;
|
||||||
procedure CMReenable(var Msg: TMessage); message CM_REENABLE;
|
procedure CMReenable(var Msg: TMessage); message CM_REENABLE;
|
||||||
|
|
||||||
|
procedure UpdateUI;
|
||||||
|
procedure UpdateStatus;
|
||||||
|
|
||||||
property LogToAttach: IX2Log read FLogToAttach;
|
property LogToAttach: IX2Log read FLogToAttach;
|
||||||
property LogAttached: Boolean read FLogAttached;
|
property LogAttached: Boolean read FLogAttached;
|
||||||
|
property Paused: Boolean read GetPaused;
|
||||||
|
property PausedLogCount: Integer read FPausedLogCount write FPausedLogCount;
|
||||||
public
|
public
|
||||||
class function Instance(ALog: IX2Log): TX2LogObserverMonitorForm;
|
class function Instance(ALog: IX2Log): TX2LogObserverMonitorForm;
|
||||||
|
|
||||||
@ -81,6 +101,7 @@ implementation
|
|||||||
uses
|
uses
|
||||||
System.DateUtils,
|
System.DateUtils,
|
||||||
System.SysUtils,
|
System.SysUtils,
|
||||||
|
Vcl.Clipbrd,
|
||||||
Winapi.Windows,
|
Winapi.Windows,
|
||||||
|
|
||||||
X2Log.Constants;
|
X2Log.Constants;
|
||||||
@ -212,7 +233,10 @@ begin
|
|||||||
vstLog.Header.Columns[ColumnMessage].Text := GetLogResourceString(@LogMonitorFormColumnMessage);
|
vstLog.Header.Columns[ColumnMessage].Text := GetLogResourceString(@LogMonitorFormColumnMessage);
|
||||||
|
|
||||||
tbClear.Caption := GetLogResourceString(@LogMonitorFormButtonClear);
|
tbClear.Caption := GetLogResourceString(@LogMonitorFormButtonClear);
|
||||||
|
tbCopyDetails.Caption := GetLogResourceString(@LogMonitorFormButtonCopyDetails);
|
||||||
tbSaveDetails.Caption := GetLogResourceString(@LogMonitorFormButtonSaveDetails);
|
tbSaveDetails.Caption := GetLogResourceString(@LogMonitorFormButtonSaveDetails);
|
||||||
|
|
||||||
|
UpdateUI;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -266,15 +290,24 @@ var
|
|||||||
nodeData: PLogEntryNodeData;
|
nodeData: PLogEntryNodeData;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
// #ToDo1 -oMvR: 20-5-2014: thread safety; Log is not guaranteed to be called in the main thread!
|
{ Ensure thread safety; TThread.Queue will run the procedure immediately
|
||||||
if GetCurrentThreadId <> MainThreadID then
|
if Log is called from the main thread, or queue it asynchronously }
|
||||||
exit;
|
TThread.Queue(nil,
|
||||||
|
procedure
|
||||||
|
begin
|
||||||
|
if not Paused then
|
||||||
|
begin
|
||||||
|
node := vstLog.AddChild(nil);
|
||||||
|
nodeData := vstLog.GetNodeData(node);
|
||||||
|
nodeData^.Initialize(ALevel, AMessage, ADetails);
|
||||||
|
|
||||||
node := vstLog.AddChild(nil);
|
UpdateUI;
|
||||||
nodeData := vstLog.GetNodeData(node);
|
end else
|
||||||
nodeData^.Initialize(ALevel, AMessage, ADetails);
|
begin
|
||||||
|
PausedLogCount := PausedLogCount + 1;
|
||||||
tbClear.Enabled := True;
|
UpdateStatus;
|
||||||
|
end;
|
||||||
|
end);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -292,6 +325,34 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure TX2LogObserverMonitorForm.UpdateUI;
|
||||||
|
var
|
||||||
|
hasDetails: Boolean;
|
||||||
|
|
||||||
|
begin
|
||||||
|
actClear.Enabled := (vstLog.RootNodeCount > 0);
|
||||||
|
|
||||||
|
hasDetails := (Length(reDetails.Text) > 0);
|
||||||
|
actCopyDetails.Enabled := hasDetails;
|
||||||
|
actSaveDetails.Enabled := hasDetails;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure TX2LogObserverMonitorForm.UpdateStatus;
|
||||||
|
begin
|
||||||
|
if Paused then
|
||||||
|
sbStatus.SimpleText := ' ' + Format(GetLogResourceString(@LogMonitorFormStatusPaused), [PausedLogCount])
|
||||||
|
else
|
||||||
|
sbStatus.SimpleText := '';
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
function TX2LogObserverMonitorForm.GetPaused: Boolean;
|
||||||
|
begin
|
||||||
|
Result := actPause.Checked;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure TX2LogObserverMonitorForm.vstLogInitNode(Sender: TBaseVirtualTree; ParentNode, Node: PVirtualNode;
|
procedure TX2LogObserverMonitorForm.vstLogInitNode(Sender: TBaseVirtualTree; ParentNode, Node: PVirtualNode;
|
||||||
var InitialStates: TVirtualNodeInitStates);
|
var InitialStates: TVirtualNodeInitStates);
|
||||||
var
|
var
|
||||||
@ -332,6 +393,20 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure TX2LogObserverMonitorForm.vstLogGetHint(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex;
|
||||||
|
var LineBreakStyle: TVTTooltipLineBreakStyle; var HintText: string);
|
||||||
|
var
|
||||||
|
nodeData: PLogEntryNodeData;
|
||||||
|
|
||||||
|
begin
|
||||||
|
if Column = ColumnLevel then
|
||||||
|
begin
|
||||||
|
nodeData := Sender.GetNodeData(Node);
|
||||||
|
HintText := GetLogLevelText(nodeData^.Level);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure TX2LogObserverMonitorForm.vstLogGetImageIndex(Sender: TBaseVirtualTree; Node: PVirtualNode; Kind: TVTImageKind;
|
procedure TX2LogObserverMonitorForm.vstLogGetImageIndex(Sender: TBaseVirtualTree; Node: PVirtualNode; Kind: TVTImageKind;
|
||||||
Column: TColumnIndex; var Ghosted: Boolean; var ImageIndex: Integer);
|
Column: TColumnIndex; var Ghosted: Boolean; var ImageIndex: Integer);
|
||||||
var
|
var
|
||||||
@ -370,13 +445,29 @@ begin
|
|||||||
reDetails.Text := nodeData^.Details;
|
reDetails.Text := nodeData^.Details;
|
||||||
end else
|
end else
|
||||||
reDetails.Text := '';
|
reDetails.Text := '';
|
||||||
|
|
||||||
|
UpdateUI;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure TX2LogObserverMonitorForm.tbClearClick(Sender: TObject);
|
procedure TX2LogObserverMonitorForm.actClearExecute(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
vstLog.Clear;
|
vstLog.Clear;
|
||||||
tbClear.Enabled := False;
|
UpdateUI;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure TX2LogObserverMonitorForm.actCopyDetailsExecute(Sender: TObject);
|
||||||
|
begin
|
||||||
|
if Length(reDetails.Text) > 0 then
|
||||||
|
Clipboard.AsText := reDetails.Text;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure TX2LogObserverMonitorForm.actPauseExecute(Sender: TObject);
|
||||||
|
begin
|
||||||
|
PausedLogCount := 0;
|
||||||
|
UpdateStatus;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
Loading…
Reference in New Issue
Block a user