@@ -157,6 +157,13 @@ TfrmDashboard = class(TForm)
157
157
var Ghosted : Boolean;
158
158
var ImageIndex : TImageIndex
159
159
);
160
+ procedure FTreeViewPaintText (
161
+ Sender : TBaseVirtualTree;
162
+ const TargetCanvas : TCanvas;
163
+ Node : PVirtualNode;
164
+ Column : TColumnIndex;
165
+ TextType : TVSTTextType
166
+ );
160
167
procedure FZmqEndpointsAdd (
161
168
ASender : TObject;
162
169
var AName : string;
@@ -316,7 +323,7 @@ destructor TfrmDashboard.Destroy;
316
323
// FComPortReceiver.OnChange.RemoveAll(Self);
317
324
318
325
SaveSettings;
319
- FZmqReceiver := nil ;
326
+ FZmqReceiver := nil ;
320
327
FWinipcReceiver := nil ;
321
328
FWinodsReceiver := nil ;
322
329
// FComPortReceiver := nil;
@@ -411,14 +418,15 @@ procedure TfrmDashboard.FTreeViewBeforeCellPaint(Sender: TBaseVirtualTree;
411
418
DN : TDashboardNode;
412
419
begin
413
420
DN := Sender.GetNodeData<TDashboardNode>(Node);
414
- if Sender.GetNodeLevel(Node) = 0 then
421
+ if DN.Level = 0 then
415
422
begin
416
423
if DN.Data.Receiver.Enabled then
417
424
Node.CheckState := csCheckedNormal
418
425
else
419
426
Node.CheckState := csUncheckedNormal;
427
+ TargetCanvas.Font.Style := [fsBold];
420
428
end
421
- else if Sender.GetNodeLevel(Node) = 1 then
429
+ else if DN.Level = 1 then
422
430
begin
423
431
if DN.Data.Subscriber.Enabled then
424
432
Node.CheckState := csCheckedNormal
@@ -436,7 +444,7 @@ procedure TfrmDashboard.FTreeViewChecked(Sender: TBaseVirtualTree;
436
444
DN := Sender.GetNodeData<TDashboardNode>(Node);
437
445
if Assigned(DN) then
438
446
begin
439
- if Sender.GetNodeLevel(Node) = 0 then
447
+ if DN.Level = 0 then
440
448
begin
441
449
B := Node.CheckState = csCheckedNormal;
442
450
DN.Data.Receiver.Enabled := B;
@@ -556,7 +564,7 @@ procedure TfrmDashboard.FTreeViewGetImageIndex(Sender: TBaseVirtualTree;
556
564
begin
557
565
DN := Sender.GetNodeData<TDashboardNode>(Node);
558
566
LReceiver := DN.Data.Receiver;
559
- if (Sender.GetNodeLevel(Node) = 0 ) and (Kind in [ikNormal, ikSelected]) then
567
+ if (DN.Level = 0 ) and (Kind in [ikNormal, ikSelected]) then
560
568
begin
561
569
if LReceiver = FZmqReceiver then
562
570
begin
@@ -578,7 +586,7 @@ procedure TfrmDashboard.FTreeViewGetPopupMenu(Sender: TBaseVirtualTree;
578
586
DN : TDashboardNode;
579
587
begin
580
588
DN := Sender.GetNodeData<TDashboardNode>(Node);
581
- if Assigned(DN) and (Sender.GetNodeLevel(Node) = 1 ) then
589
+ if Assigned(DN) and (DN.Level = 1 ) then
582
590
begin
583
591
PopupMenu := FManager.Menus.SubscriberPopupMenu;
584
592
end ;
@@ -599,7 +607,6 @@ procedure TfrmDashboard.FTreeViewGetText(Sender: TBaseVirtualTree;
599
607
Result := DateTimeToStr(ADateTime);
600
608
end ;
601
609
602
-
603
610
begin
604
611
CellText := ' ' ;
605
612
if not Assigned(Node) then
@@ -608,7 +615,7 @@ procedure TfrmDashboard.FTreeViewGetText(Sender: TBaseVirtualTree;
608
615
DN := Sender.GetNodeData<TDashboardNode>(Node);
609
616
if Assigned(DN) then
610
617
begin
611
- if Sender.GetNodeLevel(Node) = 0 then
618
+ if DN.Level = 0 then
612
619
begin
613
620
if Column = COLUMN_SOURCENAME then
614
621
CellText := DN.Data.Caption
@@ -638,6 +645,40 @@ procedure TfrmDashboard.FTreeViewGetText(Sender: TBaseVirtualTree;
638
645
end ;
639
646
end ;
640
647
end ;
648
+
649
+ procedure TfrmDashboard.FTreeViewPaintText (Sender: TBaseVirtualTree;
650
+ const TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex;
651
+ TextType: TVSTTextType);
652
+ var
653
+ DN : TDashboardNode;
654
+ begin
655
+ DN := Sender.GetNodeData<TDashboardNode>(Node);
656
+ if Assigned(DN) then
657
+ begin
658
+ if DN.Level = 0 then
659
+ TargetCanvas.Font.Style := [fsBold]
660
+ else if DN.Level = 1 then
661
+ begin
662
+ if Column < 2 then
663
+ begin
664
+ TargetCanvas.Font.Style := [fsBold];
665
+ end
666
+ else
667
+ begin
668
+ TargetCanvas.Font.Style := [];
669
+ end ;
670
+ if DN.Data.Subscriber.IsSourceActive then
671
+ begin
672
+ if DN.Data.Subscriber.Enabled then
673
+ TargetCanvas.Font.Color := clGreen
674
+ else
675
+ TargetCanvas.Font.Color := clRed;
676
+ end
677
+ else
678
+ TargetCanvas.Font.Color := clGray;
679
+ end ;
680
+ end ;
681
+ end ;
641
682
{ $ENDREGION}
642
683
643
684
{ $REGION 'Subscriber lists'}
@@ -995,6 +1036,7 @@ procedure TfrmDashboard.InitializeTreeView;
995
1036
FTreeView.OnDblClick := FTreeViewDblClick;
996
1037
FTreeView.OnGetImageIndex := FTreeViewGetImageIndex;
997
1038
FTreeView.OnGetPopupMenu := FTreeViewGetPopupMenu;
1039
+ FTreeView.OnPaintText := FTreeViewPaintText;
998
1040
with FTreeView do
999
1041
begin
1000
1042
with Header.Columns.Add do
0 commit comments