lazarus/components/virtualtreeview/laz.vtlogger.pas
2019-01-21 14:57:14 +00:00

89 lines
1.9 KiB
ObjectPascal

unit laz.VTLogger;
{$mode objfpc}{$H+}
interface
uses
LCLLogger, MultiLog;
const
lcAll = [0,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];
lcDebug = 0;
lcError = 1;
lcInfo = 2;
lcWarning = 3;
lcEvents = 4;
//reserved
lcUser = 8;
lcVTEvents = lcUser + 1;
lcPaint = lcUser + 2;
lcPaintHeader = lcUser + 3;
lcDummyFunctions = lcUser + 4;
lcMessages = lcUser + 5;
lcPaintSelection = lcUser + 6;
lcSetCursor = lcUser + 7;//it generates a lot of messages. so it will be debugged alone
lcPaintBitmap = lcUser + 8;
lcScroll = lcUser + 8;
lcPaintDetails = lcUser + 9;
lcCheck = lcUser + 10;
lcEditLink = lcUser + 11;
lcEraseBkgnd = lcUser + 12;
lcColumnPosition = lcUser + 13;
lcTimer = lcUser + 14;
lcDrag = lcUser + 15;
lcOle = lcUser + 16;
lcPanning = lcUser + 17;
lcHeaderOffset = lcUser + 18;
lcSelection = lcUser + 19;
lcAlphaBlend = lcUser + 20;
lcHint = lcUser + 21;
lcMouseEvent = lcUser + 22;
lcVT = [lcEvents..lcMouseEvent];
var
Logger: TLCLLogger;
function GetSelectedNodes(Sender: TLogger; Data: Pointer; var DoSend: Boolean): String;
implementation
uses
laz.VirtualTrees, sysutils;
type
TNodeData = record
Title: String;
end;
PNodeData = ^TNodeData;
function GetSelectedNodes(Sender: TLogger; Data: Pointer; var DoSend: Boolean): String;
var
i: Integer;
TempNode: PVirtualNode;
begin
with TBaseVirtualTree(Data) do
begin
Result:='SelectedCount: '+IntToStr(SelectedCount)+LineEnding;
TempNode:=GetFirstSelected;
if TempNode = nil then exit;
Result:=Result+PNodeData(GetNodeData(TempNode))^.Title+LineEnding;
for i:= 1 to SelectedCount -1 do
begin
TempNode:=GetNextSelected(TempNode);
Result:=Result+PNodeData(GetNodeData(TempNode))^.Title+LineEnding;
end;
end;
end;
initialization
Logger:=TLCLLogger.Create;
finalization
Logger.Free;
end.