56
|
ImageSize property on 32 (specifies the size of the control' icons)

with XMLGrid1 do
begin
BeginUpdate();
ImageSize := 32;
Font.Size := 16;
NodeHeight := 32;
LevelWidth[-1] := ImageSize;
Images('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');
with Nodes.Add('Parent <b>1',Null,Null) do
begin
with Nodes do
begin
with Add('Child 1',Null,Null) do
begin
Value := '<sha ;;0>Event <b><font ;6><off -6>2<off 4>3<off 4>1';
Selected := True;
end;
Add('Child 2',Null,Null);
end;
ExpandAll();
end;
with Nodes.Add('Parent <b>2',Null,Null) do
begin
with Nodes do
begin
Add('Child 1',Null,Null);
Add('Child 2',Null,Null);
end;
end;
ExpandBarVisible := True;
ExpandButtons := EXMLGRIDLib_TLB.exCustom;
ExpandButtonsCustom[False] := 1;
ExpandButtonsCustom[True] := 2;
EndUpdate();
end
|
55
|
ImageSize property on 16 (specifies the size of the control' icons)

with XMLGrid1 do
begin
BeginUpdate();
ImageSize := 16;
Images('gBJJgBAIDAAEg4ACEKAD/hz/EMNh8TIRNGwAjEZAEXjAojJAjMLjABAAgjUYkUnlUrlktl0vmExmUzmk1m03nE5nU7nkrQCAntBoVDolFo1HoM/ADAplLptImdMYFOqd' +
'SqlXq1QrVbrlGpVWsFNrNdnNjsk7pQAtNroFnt0sh8Yr9iulTuNxs1Eu8OiT/vsnsNVutXlk/oGGtVKxGLxWNtsZtN8iUYuNvy0Zvd+xNYwdwvl4p870GCqc8vOeuVtt' +
'mp1knyOayWVy+WzN/ze1wOElenm+12WUz/Bv2/3UyyWrzeutux2GSyGP2dQ33C1ur3GD3M4zUNzHdlWjq/E3nGzVpjWv4HA7fRy/Tv2IrN8rPW6nZ3ve7mUlfu20Z8ac' +
'vQyb+vY9jasYoDwMm+LytVBDqKG3z8O3Cb8P+mkAuY9cCQ2uL4KaxDKvkp8RNLEjqugnrwQo/UWPzFyeQw5sNLZFENrI4kOqU66pw8uzmOKvTqNqjULJvGL1JO48GtTG' +
'sbLdEL3scxLlyiw8dQeoUVxdLTtyKmUjwGlslRPJsnK1HbAKbKCrsQo8uQk/CeP44iaR/ATnTNPLvyxPU+z9P9AUDQVBowiofJXQ6Oo+kKMpIkjztE4TKn4P6JowfgPn' +
'wD5/nAjB8AOeAPo0eAA1IAFH07UhAIMpYAVIYFHqBUhwVjV1S1EtQAHxW65V0AZwAeuQAnwB5gAPYViEDVhwAHTQBkCjB4gOhwDmCyhH0sACAg==');
with Nodes.Add('Parent <b>1',Null,Null) do
begin
with Nodes do
begin
with Add('Child 1',Null,Null) do
begin
Value := '<sha ;;0>Event <b><font ;6><off -6>2<off 4>3<off 4>1';
Selected := True;
end;
Add('Child 2',Null,Null);
end;
ExpandAll();
end;
with Nodes.Add('Parent <b>2',Null,Null) do
begin
with Nodes do
begin
Add('Child 1',Null,Null);
Add('Child 2',Null,Null);
end;
end;
ExpandBarVisible := True;
ExpandButtons := EXMLGRIDLib_TLB.exCustom;
ExpandButtonsCustom[False] := 1;
ExpandButtonsCustom[True] := 2;
EndUpdate();
end
|
54
|
How can I create a new node with attribute, something like <newnode attr1='at1'/>

with XMLGrid1 do
begin
Images('gBJJgBAICAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql' +
'Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf+Pt2RrmazF3zlez+duGhsGk0Vp01i1' +
'On0GV1dU1ev1lf2VWymX2e53W73m9327iw+lfCj0gkUkAEllHKnG13j/cHQjb/eHU6b4f74jbwOncjbAB3gjaAB/k8flB8oA4A9cb9ftjXv9Xs+fwAHk80a/HpjTAD7/' +
'O2P54D+jaAg=');
with Nodes.Add('newnode',Null,Null) do
begin
Image := 1;
Nodes.Add('attr1','at1',Null).Image := 2;
end;
ExpandAll();
d := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('MSXML.DOMDocument'))) as MSXML2_TLB.FreeThreadedDOMDocument30);
SaveXML(d);
OutputDebugString( d.xml );
end
|
53
|
Is it possible to load the XML with a different version of XML DOM
with XMLGrid1 do
begin
d := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Msxml2.DOMDocument.3.0'))) as MSXML2_TLB.FreeThreadedDOMDocument30);
with d do
begin
loadXML('<customer><first_name>Joe</first_name><last_name>Smith</last_name></customer>');
end;
LoadXML(OleVariant(d));
ExpandAll();
end
|
52
|
Is there a way to define a default Editor which is assigned to each node when the string is loaded (method 2)

// SelectionChanged event - Fires when the user changes the selection.
procedure TForm1.XMLGrid1SelectionChanged(ASender: TObject; );
begin
// SelectedNode(0).Editor = "edit"
end;
with XMLGrid1 do
begin
Editors.Add('edit',EXMLGRIDLib_TLB.EditType);
Nodes.Add('Parent 1',Null,Null);
with Nodes.Add('Parent 2',Null,Null) do
begin
Picture := 'pic1';
with Nodes do
begin
Add('Child <b>1',Null,Null).Value := OleVariant(100);
Add('Child <b>2',Null,Null).Value := OleVariant(102);
Add('Child <b>3',Null,Null).Value := OleVariant(103);
end;
Expanded := True;
end;
end
|
51
|
How can I specify a default editor

// AddNode event - Occurs when a node is added to the nodes collection.
procedure TForm1.XMLGrid1AddNode(ASender: TObject; NewNode : INode);
begin
// NewNode.Editor = "calc"
end;
with XMLGrid1 do
begin
Editors.Add('calc',EXMLGRIDLib_TLB.CalculatorType);
LoadXML('<numbers><first_number>100</first_number><second_number>200</second_number></numbers>');
ExpandAll();
end
|
50
|
Is there a way to define a default Editor which is assigned to each node when the string is loaded (method 1)

// AddNode event - Occurs when a node is added to the nodes collection.
procedure TForm1.XMLGrid1AddNode(ASender: TObject; NewNode : INode);
begin
// NewNode.Editor = "edit"
end;
with XMLGrid1 do
begin
SelForeColorChild := RGB(128,128,128);
Editors.Add('edit',EXMLGRIDLib_TLB.EditType);
LoadXML('http://www.exontrol.net/testing.xml');
ExpandAll();
end
|
49
|
How can I assign editors to nodes

with XMLGrid1 do
begin
BeginUpdate();
AllowDuplicateEntries := True;
with Editors do
begin
with Add('name',EXMLGRIDLib_TLB.EditType) do
begin
Appearance := EXMLGRIDLib_TLB.EtchedApp;
end;
with Add('phone',EXMLGRIDLib_TLB.MaskType) do
begin
Mask := '(###)-######';
Appearance := EXMLGRIDLib_TLB.EtchedApp;
end;
with Add('date',EXMLGRIDLib_TLB.DateType) do
begin
Appearance := EXMLGRIDLib_TLB.EtchedApp;
end;
end;
with Nodes.Add('Customer',Null,Null) do
begin
Picture := 'mihai';
with Nodes do
begin
Add('Name','Mihai Filimon',Null).Editor := 'name';
Add('Phone','(0744)-845287',Null).Editor := 'phone';
Add('BirthDay','12/31/1971',Null).Editor := 'date';
end;
Expanded := True;
end;
LevelWidth[0] := 82;
EndUpdate();
end
|
48
|
I use LoadXml, then inside onNodeAdd event, I add the picture. But the picture doesnt show up. Does the picture have to be a bitmap

// AddNode event - Occurs when a node is added to the nodes collection.
procedure TForm1.XMLGrid1AddNode(ASender: TObject; NewNode : INode);
begin
// NewNode.Picture = LoadPicture("c:\exontrol\images\colorize.gif")
end;
with XMLGrid1 do
begin
Nodes.Add('Parent 1',Null,Null);
with Nodes.Add('Parent 2',Null,Null) do
begin
with Nodes do
begin
Add('Child <b>1',Null,Null).Value := OleVariant(100);
Add('Child <b>2',Null,Null).Value := OleVariant(102);
Add('Child <b>3',Null,Null).Value := OleVariant(103);
end;
Expanded := True;
end;
end
|
47
|
How can I assign a picture to a node ( method 3 )

with XMLGrid1 do
begin
HTMLPicture['pic1'] := 'c:\exontrol\images\zipdisk.gif';
Nodes.Add('Parent 1',Null,Null);
with Nodes.Add('Parent 2',Null,Null) do
begin
Picture := 'pic1';
with Nodes do
begin
Add('Child <b>1',Null,Null).Value := OleVariant(100);
Add('Child <b>2',Null,Null).Value := OleVariant(102);
Add('Child <b>3',Null,Null).Value := OleVariant(103);
end;
Expanded := True;
end;
end
|
46
|
How can I save the control's content using a different version of XML DOM
with XMLGrid1 do
begin
d := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Msxml2.DOMDocument.3.0'))) as MSXML2_TLB.FreeThreadedDOMDocument30);
LoadXML('<customer><first_name>Joe</first_name><last_name>Smith</last_name></customer>');
SaveXML(d);
OutputDebugString( d.xml );
ExpandAll();
end
|
45
|
How can I load the control's content using a different version of XML DOM
with XMLGrid1 do
begin
d := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Msxml2.DOMDocument.3.0'))) as MSXML2_TLB.FreeThreadedDOMDocument30);
with d do
begin
async := False;
loadXML('<customer><first_name>Joe</first_name><last_name>Smith</last_name></customer>');
end;
LoadXML(OleVariant(d));
ExpandAll();
end
|
44
|
How can I get the XML string from the control's content
with XMLGrid1 do
begin
d := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('MSXML.DOMDocument'))) as MSXML2_TLB.FreeThreadedDOMDocument30);
with Nodes.Add('Root',Null,Null) do
begin
Image := 1;
with Nodes.Add('Child1',Null,Null) do
begin
Image := 2;
Value := 'Value <b>1';
end;
with Nodes.Add('Child2',Null,Null) do
begin
Image := 2;
Value := 'Value <b>2';
end;
end;
ExpandAll();
ResizeToFit(OleVariant(0),Null);
SaveXML(d);
OutputDebugString( d.xml );
end
|
43
|
How can I load the control from a XML DOM object

with XMLGrid1 do
begin
d := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Msxml2.DOMDocument.3.0'))) as MSXML2_TLB.FreeThreadedDOMDocument30);
with d do
begin
appendChild(createElement('Root'));
with (IUnknown(childNodes.item[0]) as MSXML2_TLB.IXMLDOMElement).attributes do
begin
setNamedItem(d.createAttribute('Item-1'));
(IUnknown(item[0]) as MSXML2_TLB.IXMLDOMAttribute).value := 'value <b>1';
setNamedItem(d.createAttribute('Item-2'));
(IUnknown(item[1]) as MSXML2_TLB.IXMLDOMAttribute).value := 'value <b>2';
end;
end;
LoadXML(OleVariant(d));
ExpandAll();
ResizeToFit(OleVariant(0),Null);
OutputDebugString( d.xml );
end
|
42
|
How can I load XML from http or URL

with XMLGrid1 do
begin
LoadXML('http://www.exontrol.net/testing.xml');
ExpandAll();
end
|
41
|
How can I load XML from a supplied string

with XMLGrid1 do
begin
LoadXML('<customer><first_name>Joe</first_name><last_name>Smith</last_name></customer>');
ExpandAll();
end
|
40
|
How do I programatically search for a node
with XMLGrid1 do
begin
Nodes.Add('Parent 1',Null,Null);
with Nodes.Add('Parent 2',Null,Null) do
begin
with Nodes do
begin
Add('Child <b>1',Null,Null).Value := OleVariant(100);
Add('Child <b>2',Null,Null).Value := OleVariant(102);
end;
end;
Nodes.Add('Parent 3',Null,Null);
Search['Child 1',OleVariant(-1)].Selected := True;
end
|
39
|
How can I show the control's selection using your EBN technology

with XMLGrid1 do
begin
BeginUpdate();
with VisualAppearance do
begin
Add(1,'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');
Add(2,'gBFLBCJwBAEHhEJAEGg4BFIDg6AADACAxRDAMgBQKAAzQFAYahsGCGAAGIYxUgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDGAkRRdDSOYDmGQYDiCIoRShOMIjHL' +
'UXxtDaIZwhEAoJb+RgAUY/cTzaAEUwHHiTKInaCQGhsCYJUJAdRURQ9EwvCIZBpEWwLChENQwWLCNj2TScBwjCyqbale45ViqdoDU8lORLUi+M4zSBPcZVTRtGShPDBK' +
'TjMKKYgkG4lVpRNa0PC1GTzQ6mazkKQLRADDIDVbAeL3LiMBy9LyLLItSIrFqqaJma7ccgRDj4AY7Ua+czufBZbozOqDYzAey7TDWLRXFDNIzzTgQAyHHrETbHGqzFxM' +
'AEa5YGqYpVj2HwzDuQ5oHKIQgggSRAlIYw6B0ThGFGDIAFUDAhBMfZRiGNAkFECZnG4IQdneJwmnsSQrGAAhWAIJBJBIQgFCQIBiEIAglgqYo0i4V4MEgRI9gSToYFSb' +
'4Fk6Y4+BmBZhFOJgTC8TBogQAArgqco4muCZOkOMJtgmYpIjYKg7GKE4uCUK4AAKKg2DwI4DiCZw5k6KJ2D6D4OHiag4DwIxiiQAArAqMosnEPBPAOIhOg+DozjIJ4PG' +
'SY4iEwPAkhKLhHUUSQsnKFCnkYU9MjORhcCsAAIACLQ8iaSJ6FKC5jJoaobA8KYoACCRKnmMJzhuDpZnSboMCKGJ4nMPIPDmYAACwKIDk6CoLCeU40m6I5oliMoKDyaI' +
'CokLIpgoThviOKJoGYf4KmUKhMjMLJLCAAojCyaYoiYGoGmqM46CkOwPEoKonAACxKlSdItmiWBeBeDgrioNo3D0KxSlAAAtgsUpYnUPRPEoco8hCa+T40SxbBRj5tEs' +
'HJ1i6JhbGYS4ug8awelQLZAAKZI5C4DxrhYQ9ehmUppWiA48nAPRuFKYpiAAC47laZQ9iuKZSgOPotkuFI7C6C4gACPJAm8eQOhOQZoikDp3kCS5AACPoEk8fBGnqQgp' +
'DOSppD2TxjlyPZD6CfwekQTx5lKP5ImseZTCAL5MAMhZKEwA5jC6SIyEqfh0kuD4MjAAAwcwBw0iKDwjlKVozmyChPDSThyiMDxGk6awbB6XY1iwfQInkPg0GMEAADEd' +
'RDmcVovm8ex3FkPJrH0WJ5w4UAAkcMYMHOaxmjGTxNGcao1jWbYMkcAAMk2RJ7lycxMgMdpEHMTZMnuXBM7uMAOAG1jAED8HAQ47wGjDHgPwEI+RggcGOAmAAqxDj8Do' +
'HMTY3BUi7GWPOCAKg3jIBOEIXggBAEBA');
end;
ShowFocusRect := False;
SelBackColor := $1000000;
SelForeColor := $ffffffff;
SelBackColorCollapse := $2000000;
SelBackColorChild := $ffffffff;
SelForeColorChild := $ffffffff;
AllowDuplicateEntries := True;
Nodes.Add('Parent 1',Null,Null);
with Nodes.Add('Parent 2',Null,Null) do
begin
with Nodes do
begin
Add('Child <b>1',Null,Null).Value := OleVariant(100);
Add('Child <b>2',Null,Null).Value := OleVariant(102);
end;
Expanded := True;
Selected := True;
end;
with Nodes.Add('Parent 3',Null,Null) do
begin
with Nodes do
begin
Add('Child <b>1',Null,Null).Value := OleVariant(103);
Add('Child <b>2',Null,Null).Value := OleVariant(104);
end;
end;
Nodes.Add('Parent 4',Null,Null);
EndUpdate();
LevelWidth[0] := 96;
end
|
38
|
Is it possible to assing a picture to a node (method 2)

with XMLGrid1 do
begin
BeginUpdate();
HTMLPicture['pic1'] := 'c:\exontrol\images\zipdisk.gif';
AlignChildContent := True;
AllowDuplicateEntries := True;
SelBackMode := EXMLGRIDLib_TLB.exTransparent;
Nodes.Add('Parent 1',Null,Null);
with Nodes.Add('Parent 2',Null,Null) do
begin
with Nodes do
begin
Add('Child <b>1',Null,Null).Value := OleVariant(100);
Add('Child <b>2',Null,Null).Value := OleVariant(102);
end;
BackgroundExt[EXMLGRIDLib_TLB.exExpandBackgroundExtState] := 'left[18],client[text=`<img>pic1</img>`,align=0x20]';
Expanded := True;
end;
with Nodes.Add('Parent 3',Null,Null) do
begin
with Nodes do
begin
Add('Child <b>1',Null,Null).Value := OleVariant(103);
Add('Child <b>2',Null,Null).Value := OleVariant(104);
end;
BackgroundExt[EXMLGRIDLib_TLB.exExpandBackgroundExtState] := 'left[18],client[text=`<img>pic1</img>`,align=0x20]';
BackgroundExt[EXMLGRIDLib_TLB.exCollapseBackgroundExtState] := 'right[4],client[text=`<img>pic1:19</img>`,align=0x12]';
end;
Nodes.Add('Parent 4',Null,Null);
EndUpdate();
LevelWidth[0] := 96;
end
|
37
|
Is it possible to assing a picture to a node (method 1)

with XMLGrid1 do
begin
BeginUpdate();
HTMLPicture['pic1'] := 'c:\exontrol\images\zipdisk.gif';
AlignChildContent := True;
AllowDuplicateEntries := True;
SelBackMode := EXMLGRIDLib_TLB.exTransparent;
Nodes.Add('Parent 1',Null,Null);
with Nodes.Add('Parent 2',Null,Null) do
begin
Picture := XMLGrid1.HTMLPicture['pic1'];
with Nodes do
begin
Add('Child <b>1',Null,Null).Value := OleVariant(100);
Add('Child <b>2',Null,Null).Value := OleVariant(102);
Add('Child <b>3',Null,Null).Value := OleVariant(103);
end;
Expanded := True;
end;
Nodes.Add('Parent 3',Null,Null);
EndUpdate();
end
|
36
|
I get "The key already exists" when adding a new node. What can I do ( method 2 )
with XMLGrid1 do
begin
BeginUpdate();
with Nodes do
begin
Add('Item',Null,'Key1');
Add('Item',Null,'Key2');
Add('Item',Null,'Key3');
end;
EndUpdate();
end
|
35
|
I get "The key already exists" when adding a new node. What can I do ( method 1 )
with XMLGrid1 do
begin
BeginUpdate();
AllowDuplicateEntries := True;
with Nodes do
begin
Add('Item',Null,Null);
Add('Item',Null,Null);
Add('Item',Null,Null);
end;
EndUpdate();
end
|
34
|
How can I mark the node only, without its child

with XMLGrid1 do
begin
BeginUpdate();
AlignChildContent := True;
AllowDuplicateEntries := True;
SelBackMode := EXMLGRIDLib_TLB.exTransparent;
Nodes.Add('Parent 1',Null,Null);
with Nodes.Add('Parent 2',Null,Null) do
begin
with Nodes do
begin
Add('Child <b>1',Null,Null).Value := OleVariant(100);
Add('Child <b>2',Null,Null).Value := OleVariant(102);
end;
BackgroundExt[EXMLGRIDLib_TLB.exExpandBackgroundExtState] := 'top[20,frame=RGB(0,0,0),framethick]';
BackgroundExt[EXMLGRIDLib_TLB.exCollapseBackgroundExtState] := BackgroundExt[EXMLGRIDLib_TLB.exExpandBackgroundExtState];
Expanded := True;
end;
Nodes.Add('Parent 3',Null,Null);
EndUpdate();
end
|
33
|
How can I mark the entire node

with XMLGrid1 do
begin
BeginUpdate();
AlignChildContent := True;
AllowDuplicateEntries := True;
SelBackMode := EXMLGRIDLib_TLB.exTransparent;
Nodes.Add('Parent 1',Null,Null);
with Nodes.Add('Parent 2',Null,Null) do
begin
with Nodes do
begin
Add('Child <b>1',Null,Null).Value := OleVariant(100);
Add('Child <b>2',Null,Null).Value := OleVariant(102);
end;
BackgroundExt[EXMLGRIDLib_TLB.exExpandBackgroundExtState] := '[frame=RGB(0,0,0),framethick]';
BackgroundExt[EXMLGRIDLib_TLB.exCollapseBackgroundExtState] := BackgroundExt[EXMLGRIDLib_TLB.exExpandBackgroundExtState];
Expanded := True;
end;
Nodes.Add('Parent 3',Null,Null);
EndUpdate();
end
|
32
|
How can I specify aditional information for a node, when it is expanded

with XMLGrid1 do
begin
BeginUpdate();
AlignChildContent := True;
SelBackMode := EXMLGRIDLib_TLB.exTransparent;
with Nodes.Add('Parent',Null,Null) do
begin
with Nodes do
begin
with Add('Child <b>1',Null,Null) do
begin
Value := OleVariant(100);
BackgroundExt[EXMLGRIDLib_TLB.exCollapseBackgroundExtState] := 'top[2],bottom[2],left[2],right[2],client[pattern=6,frame]';
end;
Add('Child <b>2',Null,Null).Value := OleVariant(102);
end;
BackgroundExt[EXMLGRIDLib_TLB.exExpandBackgroundExtState] := 'top[4],bottom[4],left[17],right[4],client[text=`<font ;6><fgcolor A0A0A0>Count: 2`,align=0x20]';
BackgroundExt[EXMLGRIDLib_TLB.exCollapseBackgroundExtState] := 'top[4],bottom[4],left[4],right[4],client[text=`<font ;6><fgcolor A0A0A0>Count: 2`,align=0x02]';
Expanded := True;
end;
ResizeToFit(OleVariant(0),Null);
EndUpdate();
end
|
31
|
Is it possible to show aditional information for a node

with XMLGrid1 do
begin
BeginUpdate();
AlignChildContent := True;
SelBackMode := EXMLGRIDLib_TLB.exTransparent;
with Nodes.Add('Parent',Null,Null) do
begin
with Nodes do
begin
Add('Child <b>1',Null,Null).Value := OleVariant(100);
Add('Child <b>2',Null,Null).Value := OleVariant(102);
end;
BackgroundExt[EXMLGRIDLib_TLB.exExpandBackgroundExtState] := 'top[4],bottom[4],left[4],right[4],client[text=`<font ;6><fgcolor A0A0A0>Count: 2`,align=0x02]';
BackgroundExt[EXMLGRIDLib_TLB.exCollapseBackgroundExtState] := BackgroundExt[EXMLGRIDLib_TLB.exExpandBackgroundExtState];
Expanded := True;
end;
ResizeToFit(OleVariant(0),Null);
EndUpdate();
end
|
30
|
How can I hide the expanding bars under each parent node (method 2)

with XMLGrid1 do
begin
BeginUpdate();
Background[EXMLGRIDLib_TLB.exExpandButtonUp] := $ffffffff;
Background[EXMLGRIDLib_TLB.exExpandButtonDown] := $ffffffff;
AlignChildContent := True;
with Nodes.Add('Parent',Null,Null) do
begin
with Nodes do
begin
Add('Child <b>1',Null,Null).Value := OleVariant(100);
with Add('Child <b>2',Null,Null) do
begin
with Nodes do
begin
Add('Sub Child <b>2.1',Null,Null).Value := OleVariant(101);
with Add('Sub Child <b>2.2',Null,Null) do
begin
with Nodes do
begin
Add('Sub Child <b>2.1.1',Null,Null).Value := OleVariant(101);
Add('Sub Child <b>2.2.2',Null,Null).Value := OleVariant(102);
end;
Expanded := False;
end;
end;
Expanded := True;
end;
end;
Selected := True;
Expanded := True;
end;
LevelWidth[0] := 64;
LevelWidth[1] := 96;
LevelWidth[2] := 96;
EndUpdate();
end
|
29
|
How can I align the child nodes

with XMLGrid1 do
begin
AlignChildContent := True;
with Nodes do
begin
Add('Parent A',Null,Null).Value := OleVariant(100);
with Add('Parent B',Null,Null) do
begin
with Nodes do
begin
Add('Child<font ;6><off -4><b>1',Null,Null).Value := OleVariant(101);
Add('Child<font ;6><off -4><b>2',Null,Null).Value := OleVariant(102);
with Add('Child<font ;6><off -4><b>3',Null,Null) do
begin
with Nodes do
begin
Add('Node<font ;6><off -4><b>1',Null,Null).Value := OleVariant(103);
Add('Node<font ;6><off -4><b>2',Null,Null).Value := OleVariant(104);
end;
end;
end;
Expanded := True;
Selected := True;
end;
end;
end
|
28
|
How do I change the control's visual appearance using the UI Visual Designer
with XMLGrid1 do
begin
BeginUpdate();
AllowDuplicateEntries := True;
ShowFocusRect := False;
GridLinesColor := RGB(128,128,128);
with Nodes do
begin
with Add('Parent A',Null,Null) do
begin
with Nodes do
begin
Add('Child<font ;6><off -4><b>1',Null,Null).Value := OleVariant(100);
Add('Child<font ;6><off -4><b>2',Null,Null).Value := OleVariant(101);
with Add('Child<font ;6><off -4><b>3',Null,Null) do
begin
with Nodes do
begin
Add('Node<font ;6><off -4><b>1',Null,Null).Value := OleVariant(102);
Add('Node<font ;6><off -4><b>2',Null,Null).Value := OleVariant(103);
end;
end;
end;
Expanded := True;
Selected := True;
end;
Add('Parent B',Null,Null).Nodes.Add(1,Null,Null);
end;
LevelWidth[0] := 96;
VisualDesign := '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';
EndUpdate();
end
|
27
|
How do I specify to search for name of the nodes only, when the user filters the control

with XMLGrid1 do
begin
BeginUpdate();
FilterBarPromptVisible := EXMLGRIDLib_TLB.exFilterBarVisible;
with Nodes.Add('Parent',Null,Null) do
begin
with Nodes do
begin
Add('Child<font ;6><off -4><b>1',Null,Null).Value := OleVariant(100);
Add('Child<font ;6><off -4><b>2',Null,Null).Value := OleVariant(101);
with Add('Child<font ;6><off -4><b>3',Null,Null).Nodes do
begin
Add('Node<font ;6><off -4><b>1',Null,Null).Value := OleVariant(102);
Add('Node<font ;6><off -4><b>2',Null,Null).Value := OleVariant(103);
end;
end;
Expanded := True;
end;
AutoSearch := EXMLGRIDLib_TLB.exContains;
FilterBarPromptType := Integer(EXMLGRIDLib_TLB.exFilterPromptApplyOnName) Or Integer(EXMLGRIDLib_TLB.exFilterPromptStartWith);
FilterBarPromptPattern := 'No';
EndUpdate();
end
|
26
|
Is it possible to include child-nodes, when do filtering

with XMLGrid1 do
begin
BeginUpdate();
FilterBarPromptVisible := EXMLGRIDLib_TLB.exFilterBarVisible;
HideSelection := EXMLGRIDLib_TLB.exHideAlways;
with Nodes.Add('Parent',Null,Null) do
begin
with Nodes do
begin
Add('Child<font ;6><off -4><b>1',Null,Null).Value := OleVariant(100);
Add('Child<font ;6><off -4><b>2',Null,Null).Value := OleVariant(101);
with Add('Child<font ;6><off -4><b>3',Null,Null).Nodes do
begin
Add('Node<font ;6><off -4><b>1',Null,Null).Value := OleVariant(102);
Add('Node<font ;6><off -4><b>2',Null,Null).Value := OleVariant(103);
end;
end;
Expanded := True;
end;
AutoSearch := EXMLGRIDLib_TLB.exAnyContains;
FilterBarPromptType := Integer(EXMLGRIDLib_TLB.exFilterPromptIncludeChild) Or Integer(EXMLGRIDLib_TLB.exFilterPromptApplyOnValue) Or Integer(EXMLGRIDLib_TLB.exFilterPromptApplyOnName) Or Integer(EXMLGRIDLib_TLB.exFilterPromptContainsAny);
FilterBarPromptPattern := 'Child3';
EndUpdate();
end
|
25
|
How can I change the control's filtering so it searches for Contains rather than Start

with XMLGrid1 do
begin
BeginUpdate();
FilterBarPromptVisible := EXMLGRIDLib_TLB.exFilterBarVisible;
with Nodes.Add('Parent',Null,Null) do
begin
with Nodes do
begin
Add('Child<font ;6><off -4><b>1',Null,Null).Value := OleVariant(100);
Add('Child<font ;6><off -4><b>2',Null,Null).Value := OleVariant(101);
with Add('Child<font ;6><off -4><b>3',Null,Null).Nodes do
begin
Add('Node<font ;6><off -4><b>1',Null,Null).Value := OleVariant(102);
Add('Node<font ;6><off -4><b>2',Null,Null).Value := OleVariant(103);
end;
end;
Expanded := True;
end;
AutoSearch := EXMLGRIDLib_TLB.exAnyContains;
FilterBarPromptType := Integer(EXMLGRIDLib_TLB.exFilterPromptApplyOnValue) Or Integer(EXMLGRIDLib_TLB.exFilterPromptApplyOnName) Or Integer(EXMLGRIDLib_TLB.exFilterPromptContainsAny);
FilterBarPromptPattern := 'Child3';
EndUpdate();
end
|
24
|
How do I enable the control's filtering support

with XMLGrid1 do
begin
BeginUpdate();
FilterBarPromptVisible := EXMLGRIDLib_TLB.exFilterBarVisible;
HideSelection := EXMLGRIDLib_TLB.exHideAlways;
with Nodes.Add('Parent',Null,Null) do
begin
with Nodes do
begin
Add('Child <b>1',Null,Null).Value := OleVariant(100);
Add('Child <b>2',Null,Null).Value := OleVariant(101);
Add('Child <b>3',Null,Null).Value := OleVariant(102);
end;
Expanded := True;
end;
EndUpdate();
end
|
23
|
How can I hide the expanding bars under each parent node (method 1)

with XMLGrid1 do
begin
BeginUpdate();
VisualAppearance.Add(1,'gBFLBCJwBAEHhEJAAChABDEMACAADACAxRDQNABQKAAzQFAYaBmGqGAAGEaRWgmFgAQhFcZQSKUOQTDKMIziaQIRDINQlSTJcQjKKEUQTFiXIyAKKwEgmEQMQiCcbzXI' +
'UBxAAqXZZFUaKAgOMJDTLBAzUTCUKx7HynQACCCaTpGVo8hYhEoDJKMdB1HIZIwyBBcqBNWTFdLAAJFKTdKAMIyiGp4DbudjyXg6V5OTblez9P7AMBvS6nKrhcp2PrhT' +
'SYWr+Gp5R7IMhyLI8Uw/DS/Yq1GDYIiuOoIQhCUD0LQ9EyXJqnaJnaC5aiuCT7VRjWDYFgFdTpQC8bZuGz7Trmd59XTadhYHSsAyNRDCL6tayLDxSZabZ5aOa6HoOS4k' +
'jGY4vnQeAEBaCYOkQYYslYCpvA+D5FmSc55j0PhfF8eYHlwQZ2nQTImDsFRaioVB9j8Hx/k+c53n4fogAeTJFHuXY3HCTAygyAociMKBKEKBIeCiCZyHYEAnCEOBUh+B' +
'QhBgNIegKCgYBySAgh2SAUgINAMmMNIgCcCYjn4KoKmKSI2C6CpiHIagkDMYgCAoIg1A0IxEhsJgJFiPg+g+Y4yFYOA0GMWIIloNhNGIaIXCUI5CE4SwkEkchOFCFIlB' +
'kThQCUCQZDYSglCQcxaEUX5IBmBJhDeDZZDYOwlgmQhghaGZmkmKhnhoZo5ioTYYk2WYEgEYAnGOGJlDkCQyECDqfCkNoCCUSQ6A6BYhCgCZ0g6HoOEmWR9GFYw4m0Ow' +
'IlIJIHCRc4shGJhpjoaocieaZiC6GAimkUgehIOwnGYEYGGiah6jaE4rg6SpCjKK5rEOMYjGGGIChKOgglmdoij6L5aEYfo6CkGIEAQgIA==');
VisualAppearance.Add(2,'gBFLBCJwBAEHhEJAAChABC0MACAADACAxRDQNABQKAAzQFAYaBmGqGAAGEaRWgmFgAQhFcZQSKUOQTDKMIziaQIRDINQlSTJcQjKKEUQTFiXIyAKKwEgmEQMQiCcbzXI' +
'UBxAAqXZZFUaKAgOMJDTLBAzUTCUKx7HynQACCCaTpGVo8hYhEoDJKMdB1HIZIwyBBcqBNWTFdLAAJFKTdKAMIyiGp4DbudjyXg6V5OTblez9P7AMBvS6nKrhcp2PrhT' +
'SYWr+Gp5R7IMhyLI8Uw/DS/Yq1GDYIiuOoIQhCUD0LQ9EyXJqnaJnaC5aiuCT7VRjWDYFgFdTpQC8bZuGz7Trmd59XTadhYHSsAyNRDCL6tayLDxSZabZ5aOa6HoOS4k' +
'jGY4vnQeAEBaCYOkQYYslYCpvA+D5FmQf56D0PhPF+G5Fl4YZ3BAfY9BMKYOkUVoqhUH4PleZ53mkehfjgBZ9H4XxTBWcR2l2QwwkoMgKHKDIhCkCgSHiIgnkmWBMhwf' +
'5egglInGEAh6A0KBgiMIICHdLIIlAM4MlKAIcCaIYIjYLoLGKIhqCcMxiR8JQ1A0IxEhsJgJFiPg+guI4yFYOA0GMWIUloNhNGIaIXCUI5CE4SwkEkchMhGCxlBkQIUC' +
'QZJZCiFIRk0aQVH8IBmAOBJeDcZJYmyFgnAmAhaGaCxmGmIhqhoZJZgiXYYAgFgCHQOYOFOEITCQCJpCyEoTVUNoACUZJiFCEoekiaZgmSHQXlYEh0DuDpTjCDQiEgch' +
'Ag0IpJBoXoZiYKYqHaHAimkYguhMIZpAOMh0GEGBmg6JYqmkGowmyK4rAqNoyDsGg2BmCApCuAgNh8agrkqdYkGea4ChGCBAEAgI');
VisualAppearance.Add(3,'gBFLBCJwBAEHhEJAAChABa8GACAADACAxRDQNABQKAAzQFAYaBmGqGAAGEaRWgmFgAQhFcZQSKUOQTDKMIzkKJpAAiCRQGiYZyHKcxMYgQrAZBEbKMLwrAYUIRCCaofA' +
'AGIaRDIcZPXQjZSMdSkHRpKi6Mo2TpPUpSDpUM6VCL3KhqKxXeq1cp2XpfWBYNhVbTafyyaiqKiSWy0EQRBSDXBcNxXHalazhNpCbTSWoqLrhRzDMCwC6rUwCeYJQzCc' +
'LxLCcMwjA5/MDeFLXCwjBJ+W5aFhzBYsbx1NKcZ7nWgaAqOKp/OKnECuBh2EYNMywK5rew7BqTf5tW7ZNx2TYNMYPKiDajcDJMOwqWpUVDjOQ4fidXzfSbPcrxfBsLp/' +
'FOKhmDKGQKHUGoFEiIRPCiE5pl8ChzhuNpyHgU49mSdxtEOWBkCCNRdGQExBhyTRQCcExeG+X5zneeAmh8Uw1nEIIfDMUJSDQSYyGCFR/GCR5yAkJRgGMRgDHyTYjGSV' +
'gmgkchSAoJJhhIRIXCSSQXm4H4HgkQhGBuBgJEgVJWgSVJSAYLg4E2Yx2BuAhJGIcIYCWIxHm4NINiOCJeBuDANliOIBFOJAjhiZQ5AkMhAg6BhJCgbgbH6ZJiFYHAlA' +
'kKQkg6EYOEkCRLFTQw4m0OwIlIJIHCRVAshGGRmHmGhohqZoiC4ZAimYEgeF4OwkCUSRUFwZw5mYX4eg6SZyH6HpoAOMRxFUFRihKBgglaVZagqIpXCWNoGCkFRkAQgI' +
'');
HideSelection := EXMLGRIDLib_TLB.exHideAlways;
ExpandButtons := EXMLGRIDLib_TLB.exCustom;
ExpandButtonsCustom[True] := 16777216;
ExpandButtonsCustom[False] := 33554432;
Background[EXMLGRIDLib_TLB.exExpandButtonUp] := $3000000;
Background[EXMLGRIDLib_TLB.exExpandButtonDown] := $3000000;
with Nodes.Add('Parent',Null,Null) do
begin
with Nodes do
begin
Add('Child <b>1',Null,Null).Value := OleVariant(100);
with Add('Child <b>2',Null,Null) do
begin
with Nodes do
begin
Add('Sub Child <b>2.1',Null,Null).Value := OleVariant(101);
with Add('Sub Child <b>2.2',Null,Null) do
begin
with Nodes do
begin
Add('Sub Child <b>2.1.1',Null,Null).Value := OleVariant(101);
Add('Sub Child <b>2.2.2',Null,Null).Value := OleVariant(102);
end;
Expanded := False;
end;
end;
Expanded := True;
end;
end;
Selected := True;
Expanded := True;
end;
LevelWidth[0] := 64;
LevelWidth[1] := 96;
LevelWidth[2] := 96;
EndUpdate();
end
|
22
|
How can I change the visual appearance for expand/collapse buttons

with XMLGrid1 do
begin
BeginUpdate();
VisualAppearance.Add(1,'gBFLBCJwBAEHhEJAAChABDEMACAADACAxRDQNABQKAAzQFAYaBmGqGAAGEaRWgmFgAQhFcZQSKUOQTDKMIziaQIRDINQlSTJcQjKKEUQTFiXIyAKKwEgmEQMQiCcbzXI' +
'UBxAAqXZZFUaKAgOMJDTLBAzUTCUKx7HynQACCCaTpGVo8hYhEoDJKMdB1HIZIwyBBcqBNWTFdLAAJFKTdKAMIyiGp4DbudjyXg6V5OTblez9P7AMBvS6nKrhcp2PrhT' +
'SYWr+Gp5R7IMhyLI8Uw/DS/Yq1GDYIiuOoIQhCUD0LQ9EyXJqnaJnaC5aiuCT7VRjWDYFgFdTpQC8bZuGz7Trmd59XTadhYHSsAyNRDCL6tayLDxSZabZ5aOa6HoOS4k' +
'jGY4vnQeAEBaCYOkQYYslYCpvA+D5FmSc55j0PhfF8eYHlwQZ2nQTImDsFRaioVB9j8Hx/k+c53n4fogAeTJFHuXY3HCTAygyAociMKBKEKBIeCiCZyHYEAnCEOBUh+B' +
'QhBgNIegKCgYBySAgh2SAUgINAMmMNIgCcCYjn4KoKmKSI2C6CpiHIagkDMYgCAoIg1A0IxEhsJgJFiPg+g+Y4yFYOA0GMWIIloNhNGIaIXCUI5CE4SwkEkchOFCFIlB' +
'kThQCUCQZDYSglCQcxaEUX5IBmBJhDeDZZDYOwlgmQhghaGZmkmKhnhoZo5ioTYYk2WYEgEYAnGOGJlDkCQyECDqfCkNoCCUSQ6A6BYhCgCZ0g6HoOEmWR9GFYw4m0Ow' +
'IlIJIHCRc4shGJhpjoaocieaZiC6GAimkUgehIOwnGYEYGGiah6jaE4rg6SpCjKK5rEOMYjGGGIChKOgglmdoij6L5aEYfo6CkGIEAQgIA==');
VisualAppearance.Add(2,'gBFLBCJwBAEHhEJAAChABC0MACAADACAxRDQNABQKAAzQFAYaBmGqGAAGEaRWgmFgAQhFcZQSKUOQTDKMIziaQIRDINQlSTJcQjKKEUQTFiXIyAKKwEgmEQMQiCcbzXI' +
'UBxAAqXZZFUaKAgOMJDTLBAzUTCUKx7HynQACCCaTpGVo8hYhEoDJKMdB1HIZIwyBBcqBNWTFdLAAJFKTdKAMIyiGp4DbudjyXg6V5OTblez9P7AMBvS6nKrhcp2PrhT' +
'SYWr+Gp5R7IMhyLI8Uw/DS/Yq1GDYIiuOoIQhCUD0LQ9EyXJqnaJnaC5aiuCT7VRjWDYFgFdTpQC8bZuGz7Trmd59XTadhYHSsAyNRDCL6tayLDxSZabZ5aOa6HoOS4k' +
'jGY4vnQeAEBaCYOkQYYslYCpvA+D5FmQf56D0PhPF+G5Fl4YZ3BAfY9BMKYOkUVoqhUH4PleZ53mkehfjgBZ9H4XxTBWcR2l2QwwkoMgKHKDIhCkCgSHiIgnkmWBMhwf' +
'5egglInGEAh6A0KBgiMIICHdLIIlAM4MlKAIcCaIYIjYLoLGKIhqCcMxiR8JQ1A0IxEhsJgJFiPg+guI4yFYOA0GMWIUloNhNGIaIXCUI5CE4SwkEkchMhGCxlBkQIUC' +
'QZJZCiFIRk0aQVH8IBmAOBJeDcZJYmyFgnAmAhaGaCxmGmIhqhoZJZgiXYYAgFgCHQOYOFOEITCQCJpCyEoTVUNoACUZJiFCEoekiaZgmSHQXlYEh0DuDpTjCDQiEgch' +
'Ag0IpJBoXoZiYKYqHaHAimkYguhMIZpAOMh0GEGBmg6JYqmkGowmyK4rAqNoyDsGg2BmCApCuAgNh8agrkqdYkGea4ChGCBAEAgI');
HideSelection := EXMLGRIDLib_TLB.exHideAlways;
ExpandButtons := EXMLGRIDLib_TLB.exCustom;
ExpandButtonsCustom[True] := 16777216;
ExpandButtonsCustom[False] := 33554432;
with Nodes.Add('Parent',Null,Null) do
begin
with Nodes do
begin
Add('Child <b>1',Null,Null).Value := OleVariant(100);
with Add('Child <b>2',Null,Null) do
begin
with Nodes do
begin
Add('Sub Child <b>2.1',Null,Null).Value := OleVariant(101);
with Add('Sub Child <b>2.2',Null,Null) do
begin
with Nodes do
begin
Add('Sub Child <b>2.1.1',Null,Null).Value := OleVariant(101);
Add('Sub Child <b>2.2.2',Null,Null).Value := OleVariant(102);
end;
Expanded := False;
end;
end;
Expanded := True;
end;
end;
Selected := True;
Expanded := True;
end;
LevelWidth[0] := 64;
LevelWidth[1] := 96;
LevelWidth[2] := 96;
EndUpdate();
end
|
21
|
Does your control support transparent selection

with XMLGrid1 do
begin
BeginUpdate();
SelBackMode := EXMLGRIDLib_TLB.exTransparent;
SelBackColorChild := SelBackColor;
with Nodes.Add('Parent',Null,Null) do
begin
with Nodes do
begin
Add('Child <b>1',Null,Null).Value := OleVariant(100);
with Add('Child <b>2',Null,Null) do
begin
with Nodes do
begin
Add('Sub Child <b>2.1',Null,Null).Value := OleVariant(101);
with Add('Sub Child <b>2.2',Null,Null) do
begin
with Nodes do
begin
Add('Sub Child <b>2.1.1',Null,Null).Value := OleVariant(101);
Add('Sub Child <b>2.2.2',Null,Null).Value := OleVariant(102);
end;
Expanded := True;
end;
end;
Expanded := True;
end;
end;
Selected := True;
Expanded := True;
end;
LevelWidth[0] := 64;
LevelWidth[1] := 96;
LevelWidth[2] := 96;
EndUpdate();
end
|
20
|
How can I show the selection with some transparent marker

with XMLGrid1 do
begin
BeginUpdate();
AllowDuplicateEntries := True;
with Nodes.Add('Parent',Null,Null) do
begin
with Nodes do
begin
Add('Child <b>1',Null,Null).Value := OleVariant(100);
Add('Child <b>2',Null,Null).Value := OleVariant(101);
end;
Selected := True;
Expanded := True;
end;
with Nodes.Add('Parent',Null,Null) do
begin
with Nodes do
begin
Add('Child <b>1',Null,Null).Value := OleVariant(100);
Add('Child <b>2',Null,Null).Value := OleVariant(101);
end;
end;
LevelWidth[0] := 64;
LevelWidth[1] := 96;
LevelWidth[2] := 96;
ShowFocusRect := False;
VisualAppearance.Add(1,'gBFLBCJwBAEHhEJAAChABdcGACAADACAxRDQNABQKAAzQFAYaBmGqGAAGEaRWgmFgAQhFcZQSKUOQTDKMIziYBYJhGBQxAJCI4DBCIZBwGKQBjASQpUhqHYDTbIMByBI' +
'UIxMGiYIRoGAxTiAMo8RrSEZTdD8ExTAZ/XzfMAKRpOFo/ULEUw0NR8aRABiNQbkWjYDp1f5nVRaFTxYKoSxbNqIRpGCzoJrKdI1SBEMTWBAddSdBKzX7tHArLgSQJdS' +
'rLMrzDIka4cACcZxkCioXozBpZVjRMaZJC2KAbMaBQgsQALGqjAaVUJQEgZTTmHS/BLPYDsLQdDyXAqnYTkFwWZa4ATtOK5b6jK6dQgmfAAaJGWzYHpGL4QGCYZKGapM' +
'gsKaVmwYp8j2RoCCWB4VHQIQjD6FIjF2RpumyewRj6XYrjoMpdk4Pgbm4DZXmmSpRnWeJ9hiN4zAkSRCECBAkFAGhGDGUB1ByBhVGUCxAkQIQ2AsRZRFQDAoEIXoXCUI' +
'QGBSNg9BoYBNjMbJ/DGTBznyQAwCIKISCOCRigiHgqgmIhIgCfw3k2dgFn6DAihiMg1g2Yo4mINoNBCEwMkOCgPDOTgyhCZBJBYRIQTGmYOGQaQ2E6EQjhkLg2hOZRJD' +
'oURAmSSRWFqEJlHAAhZhaZgJHYX4YCWKYKFOGQljmGgohoJoYloUoambTxqgmZwZkoboWCYeZWFaHaOBDRIkCmahDhIIh5nmfoHGOKgmDmIpjGiHoIEIVQjnyXA3A+cw' +
'gkiIooloZgoiWD5zgCYIMhCFAEIC');
SelBackColor := $1000000;
SelForeColor := $ffffffff;
SelBackColorChild := $ffffffff;
SelForeColorChild := $ffffffff;
EndUpdate();
end
|
19
|
How can I highlight the focused/selected node only, instead highlighting its childrend collection (method 3)

with XMLGrid1 do
begin
BeginUpdate();
with Nodes.Add('Parent',Null,Null) do
begin
with Nodes do
begin
Add('Child <b>1',Null,Null).Value := OleVariant(100);
Add('Child <b>2',Null,Null).Value := OleVariant(101);
end;
Selected := True;
Expanded := True;
end;
LevelWidth[0] := 64;
LevelWidth[1] := 96;
LevelWidth[2] := 96;
ShowFocusRect := False;
VisualAppearance.Add(1,'gBFLBCJwBAEHhEJAAChABGYDg6AADACAxRDQNABQKAAzQFAYaBmGqGAAGEaRWgmFgAQhFcZQSKUOQTDKNYykCIRSDUJYkSZEIyjAIoBQ4GACJBmKKodgONYYTLFYCwTJ' +
'ETw5FKEZTEWQBTjGOY5TbNcgUPCMex7IiVJYpOK6ThqTYfQjLUBvfTgAS4f6Laaneg4JDOUYtTjIADRWBMeSxAatK6rWr7BqOYoDUJZcQyDIcNzXAa9aLjO5wAiWPp4V' +
'JZM54FKVEzfQSrZqoDIrEgOZpBYjMdSgADFXQGDbHbhuS5IWwTBpQZhaGZQTb+mZtZ7oMI6HTuSztW7EMLAC6bJx7LoDazoGKSDo0TZRXLNYqzPIdf4OVq4YTxVi2PZG' +
'nmLJfGwOY8m2NhTAmPJcmAZBbmiDo3DuW4ZEgAQQhKAYkkYdA6hyDIjBkAIqBgQgmn0YxRFgGIjF8CRwhOB4ZAkPQdFYMRfCsYICFYCgkEkEhCA0JDeEICglgqYo0i4X' +
'QMEgZI9gaToYHSb4Hk6Y4+CGB5hlOJgbC8TBoiQAArgqco4muC5OkOMJtguYxIlYMg7GME4uC0K4AAKKg+DwJADiCZw5k6KQWEaEYOHkChADwI5izIKwKjKzQ8E8A4iF' +
'aEYOjOMgvhEZRjiIVA8CUEouE9SRJEycoWCMCJmFvUAzkYZArAACAgi0PInEkGhauKCYsmqHQPCmSAAgsSp5lCc4dg6WgUm6DkQhicw8g8OiDiwKQDk6EoNCgU40m6JZ' +
'pFiUoSDyaQCokLIqAobh3iWKRogaB4MmWKhsjMLJLCAAorCyagokYIoImsM46DEOwPEoSovABZR0nSL5pFgfgfhALAqFaPw9CuUrgC2CxSlidQ9E8SoSkSEpsZXj5LFs' +
'NAAC2bZLDydYwiaW4GFOMIPGsPpcC2QACmSOQuA8a42EvYoZnKcVsAOPJwD0bpSmKagAAuO52m0PYsCmcoLkCLhLjSOwuguIAAjyQpvnkLobkOaQpC6f5CkuQAAj6BpP' +
'HwZwCkQKYzkqcQ9k8Y5cj2RejH8JpGE8eZykeSprnmcwoC+TADAAAJMEwA5jDaSoyksHh8rmDLgDBzoHDyJIPCOUpejWbQKG8PJQHMIwPE6UJrhsPpljeLJ9CieQ+DSY' +
'wQAAMR1kOZxejGb57hcYQ8mufR4nmVwMFAAJHDGDBzmsbozk8TYHHKN42G2LJHAADJNmSe5enOTIjH6Rhzk2Nke4vBMt8GAHADY5wbgUD8HEQ47wOjHHiPwMI+RigcGO' +
'AmAorgjj8EIHMTY3B0i7GePQDoBwdBvGSCcIQ6BACAIC');
SelBackColor := $1000000;
SelForeColor := $ffffffff;
SelBackColorChild := $ffffffff;
SelForeColorChild := $ffffffff;
EndUpdate();
end
|
18
|
How can I highlight the focused/selected node only, instead highlighting its childrend collection (method 2)

with XMLGrid1 do
begin
BeginUpdate();
with Nodes.Add('Parent',Null,Null) do
begin
with Nodes do
begin
Add('Child <b>1',Null,Null).Value := OleVariant(100);
Add('Child <b>2',Null,Null).Value := OleVariant(101);
end;
Selected := True;
Expanded := True;
end;
LevelWidth[0] := 64;
LevelWidth[1] := 96;
LevelWidth[2] := 96;
VisualAppearance.Add(1,'gBFLBCJwBAEHhEJAAChABJUIQAAYAQGKIaBoAKBQAGaAoDDQMw1QwAAwjSK0EwsACEIrjKCRShyCYZRhGcTSAAUEhiGKQBgiGDhViWAwyDABEbwS78agBFyRlqyfKccx' +
'9DaAQEBA');
ShowFocusRect := False;
SelBackColor := $1a0a0a0;
SelForeColor := $ffffffff;
SelBackColorChild := $ffffffff;
SelForeColorChild := $ffffffff;
EndUpdate();
end
|
17
|
How can I highlight the focused/selected node only, instead highlighting its childrend collection (method 1)

with XMLGrid1 do
begin
BeginUpdate();
with Nodes.Add('Parent',Null,Null) do
begin
with Nodes do
begin
Add('Child <b>1',Null,Null).Value := OleVariant(100);
Add('Child <b>2',Null,Null).Value := OleVariant(101);
end;
Selected := True;
Expanded := True;
end;
LevelWidth[0] := 64;
LevelWidth[1] := 96;
LevelWidth[2] := 96;
HideSelection := EXMLGRIDLib_TLB.exHideAlways;
VisualAppearance.Add(1,'gBFLBCJwBAEHhEJAAChABdcGACAADACAxRDQNABQKAAzQFAYaBmGqGAAGEaRWgmFgAQhFcZQSKUOQTDKMIziYBYJhGBQxAJCI4DBCIZBwGKQBjASQpUhqHYDTbIMByBI' +
'UIxMGiYIRoGAxTiAMo8RrSEZTdD8ExTAZ/XzfMAKRpOFo/ULEUw0NR8aRABiNQbkWjYDp1f5nVRaFTxYKoSxbNqIRpGCzoJrKdI1SBEMTWBAddSdBKzX7tHArLgSQJdS' +
'rLMrzDIka4cACcZxkCioXozBpZVjRMaZJC2KAbMaBQgsQALGqjAaVUJQEgZTTmHS/BLPYDsLQdDyXAqnYTkFwWZa4ATtOK5b6jK6dQgmfAAaJGWzYHpGL4QGCYZKGapM' +
'gsKaVmwYp8j2RoCCWB4VHQIQjD6FIjF2RpumyewRj6XYrjoMpdk4Pgbm4DZXmmSpRnWeJ9hiN4zAkSRCECBAkFAGhGDGUB1ByBhVGUCxAkQIQ2AsRZRFQDAoEIXoXCUI' +
'QGBSNg9BoYBNjMbJ/DGTBznyQAwCIKISCOCRigiHgqgmIhIgCfw3k2dgFn6DAihiMg1g2Yo4mINoNBCEwMkOCgPDOTgyhCZBJBYRIQTGmYOGQaQ2E6EQjhkLg2hOZRJD' +
'oURAmSSRWFqEJlHAAhZhaZgJHYX4YCWKYKFOGQljmGgohoJoYloUoambTxqgmZwZkoboWCYeZWFaHaOBDRIkCmahDhIIh5nmfoHGOKgmDmIpjGiHoIEIVQjnyXA3A+cw' +
'gkiIooloZgoiWD5zgCYIMhCFAEIC');
Background[EXMLGRIDLib_TLB.exShowFocusRect] := $1000000;
EndUpdate();
end
|
16
|
How do I enable the scrollbar-extension, as thumb to be shown outside of the control's client area

with XMLGrid1 do
begin
BeginUpdate();
with Nodes.Add('Parent <font ;6><off 4>1',Null,Null) do
begin
with Nodes do
begin
with Add('Child 1',Null,Null) do
begin
Value := '<sha ;;0>Event <b><font ;6><off -6>2<off 4>3<off 4>1';
end;
Add('Child 2',Null,Null);
end;
ExpandAll();
end;
with Nodes.Add('Parent <font ;6><off 4>2',Null,Null).Nodes do
begin
Add('Child 1',Null,Null);
Add('Child 2',Null,Null);
end;
ScrollBars := EXMLGRIDLib_TLB.exBoth;
ScrollPartVisible[EXMLGRIDLib_TLB.exVScroll,EXMLGRIDLib_TLB.exExtentThumbPart] := True;
ScrollPartVisible[EXMLGRIDLib_TLB.exHScroll,EXMLGRIDLib_TLB.exExtentThumbPart] := True;
ScrollPartVisible[EXMLGRIDLib_TLB.ScrollBarEnum($2),EXMLGRIDLib_TLB.exExtentThumbPart] := True;
ScrollWidth := 4;
Background[EXMLGRIDLib_TLB.exVSBack] := $f0f0f0;
Background[EXMLGRIDLib_TLB.exVSThumb] := $808080;
ScrollHeight := 4;
Background[EXMLGRIDLib_TLB.exHSBack] := Background[EXMLGRIDLib_TLB.exVSBack];
Background[EXMLGRIDLib_TLB.exHSThumb] := Background[EXMLGRIDLib_TLB.exVSThumb];
Background[EXMLGRIDLib_TLB.exScrollSizeGrip] := Background[EXMLGRIDLib_TLB.exVSBack];
EndUpdate();
end
|
15
|
Does your control support Fit-To-Page, Print and Print-Preview

with XMLGrid1 do
begin
with Nodes.Add('Parent <b>1',Null,Null) do
begin
with Nodes do
begin
Add('Child 1',Null,Null).Selected := True;
Add('Child 2',Null,Null);
end;
ExpandAll();
end;
with Nodes.Add('Parent <b>2',Null,Null) do
begin
with Nodes do
begin
Add('Child 1',Null,Null);
Add('Child 2',Null,Null);
end;
end;
with (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.Print'))) as EXPRINTLib_TLB.Print) do
begin
Options := 'FitToPage = 1x1';
PrintExt := (IUnknown(XMLGrid1.DefaultInterface) as EXMLGRIDLib_TLB.XMLGrid);
Preview();
end;
end
|
14
|
How do I print the control
with XMLGrid1 do
begin
with Nodes.Add('Parent <b>1',Null,Null) do
begin
with Nodes do
begin
Add('Child 1',Null,Null).Selected := True;
Add('Child 2',Null,Null);
end;
ExpandAll();
end;
with Nodes.Add('Parent <b>2',Null,Null) do
begin
with Nodes do
begin
Add('Child 1',Null,Null);
Add('Child 2',Null,Null);
end;
end;
with (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.Print'))) as EXPRINTLib_TLB.Print) do
begin
PrintExt := (IUnknown(XMLGrid1.DefaultInterface) as EXMLGRIDLib_TLB.XMLGrid);
Preview();
end;
end
|
13
|
How can we can customize a context menu based on the node type

// MouseUp event - Occurs when the user releases a mouse button.
procedure TForm1.XMLGrid1MouseUp(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
with XMLGrid1 do
begin
OutputDebugString( 'Node:' );
OutputDebugString( NodeFromPoint[X,Y] );
with (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ContextMenu'))) as EXCONTEXTMENULib_TLB.ExContextMenu) do
begin
Items.ToString := 'Calendar[id=20][img=0],MSChart[id=30],Record[id=40],Slider[id=50],Radio 1[id=100][typ=2][edit=],Radio 2[id=101][typ=2][edit=],Ra' +
'dio 3[id=102][typ=2][edit=],ComboBox[id=90]';
OutputDebugString( Select(Null,Null,Null) );
end;
end
end;
with XMLGrid1 do
begin
with Nodes.Add('Parent',Null,Null) do
begin
with Nodes do
begin
Add('Child 1',Null,Null);
Add('Child 2',Null,Null);
end;
Expanded := True;
end;
end
|
12
|
How we can attach a customized editor, for example, a date-time picker dialog for a date-time attribute using eXMLGrid

// UserEditorClose event - Fired the user editor is about to be opened.
procedure TForm1.XMLGrid1UserEditorClose(ASender: TObject; Object : IDispatch;Node : INode);
begin
// Node.Value = Object.Value
end;
// UserEditorOpen event - Occurs when an user editor is about to be opened.
procedure TForm1.XMLGrid1UserEditorOpen(ASender: TObject; Object : IDispatch;Node : INode);
begin
// Object.Value = Node.Value
end;
with XMLGrid1 do
begin
NodeHeight := 24;
with Editors do
begin
with Add('ExCalendarUserEditor',EXMLGRIDLib_TLB.UserEditorType) do
begin
UserEditor('ExCalendar.CalendarCombo','');
with (IUnknown(UserEditorObject) as EXCALENDARLib_TLB.CalendarCombo) do
begin
end;
end;
end;
with Nodes.Add('Date',Null,Null) do
begin
Editor := 'ExCalendarUserEditor';
Value := '1/1/2001';
end;
end
|
11
|
How can change the visual appearance of the expand/collapse buttons

with XMLGrid1 do
begin
Images('gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql' +
'Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0' +
'ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN' +
'AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=');
VisualAppearance.Add(1,'c:\exontrol\images\normal.ebn');
VisualAppearance.Add(2,'c:\exontrol\images\pushed.ebn');
with Nodes.Add('Parent <b>1',Null,Null) do
begin
with Nodes do
begin
with Add('Child 1',Null,Null) do
begin
Value := '<sha ;;0>Event <b><font ;6><off -6>2<off 4>3<off 4>1';
Selected := True;
end;
Add('Child 2',Null,Null);
end;
ExpandAll();
end;
with Nodes.Add('Parent <b>2',Null,Null) do
begin
with Nodes do
begin
Add('Child 1',Null,Null);
Add('Child 2',Null,Null);
end;
end;
ExpandBarVisible := True;
ExpandButtons := EXMLGRIDLib_TLB.exCustom;
ExpandButtonsCustom[False] := 1;
ExpandButtonsCustom[True] := 2;
Background[EXMLGRIDLib_TLB.exExpandButtonDown] := $1808080;
Background[EXMLGRIDLib_TLB.exExpandButtonUp] := $1000000;
Background[EXMLGRIDLib_TLB.exExpandBarButtonDown] := $2808080;
Background[EXMLGRIDLib_TLB.exExpandBarButtonUp] := $2000000;
ShowFocusRect := False;
SelBackColor := RGB(0,0,0);
SelBackColorChild := SelBackColor;
SelForeColor := RGB(255,255,255);
SelForeColorChild := SelForeColor;
end
|
10
|
How can change the visual appearance of the selected node

with XMLGrid1 do
begin
with Nodes.Add('Parent <b>1',Null,Null) do
begin
with Nodes do
begin
with Add('Child 1',Null,Null) do
begin
Value := '<sha ;;0>Event <b><font ;6><off -6>2<off 4>3<off 4>1';
Selected := True;
end;
Add('Child 2',Null,Null);
end;
ExpandAll();
end;
with Nodes.Add('Parent <b>2',Null,Null) do
begin
with Nodes do
begin
Add('Child 1',Null,Null);
Add('Child 2',Null,Null);
end;
end;
ShowFocusRect := False;
SelBackColor := RGB(0,0,0);
SelBackColorChild := SelBackColor;
SelForeColor := RGB(255,255,255);
SelForeColorChild := SelForeColor;
end
|
9
|
How can I select programatically a node

with XMLGrid1 do
begin
with Nodes.Add('Parent <b>1',Null,Null) do
begin
with Nodes do
begin
Add('Child 1',Null,Null).Selected := True;
Add('Child 2',Null,Null);
end;
ExpandAll();
end;
with Nodes.Add('Parent <b>2',Null,Null) do
begin
with Nodes do
begin
Add('Child 1',Null,Null);
Add('Child 2',Null,Null);
end;
end;
end
|
8
|
How can I expand all nodes

with XMLGrid1 do
begin
with Nodes.Add('Parent',Null,Null) do
begin
with Nodes do
begin
Add('Child 1',Null,Null);
Add('Child 2',Null,Null);
end;
ExpandAll();
end;
end
|
7
|
Does your control support subscript or superscript

with XMLGrid1 do
begin
with Nodes.Add('Parent <font ;6><off 4>1',Null,Null) do
begin
with Nodes do
begin
with Add('Child 1',Null,Null) do
begin
Value := '<sha ;;0>Event <b><font ;6><off -6>2<off 4>3<off 4>1';
end;
Add('Child 2',Null,Null);
end;
ExpandAll();
end;
with Nodes.Add('Parent <font ;6><off 4>2',Null,Null).Nodes do
begin
Add('Child 1',Null,Null);
Add('Child 2',Null,Null);
end;
end
|
6
|
How can I add a UserType editor ( ActiveX )

// UserEditorClose event - Fired the user editor is about to be opened.
procedure TForm1.XMLGrid1UserEditorClose(ASender: TObject; Object : IDispatch;Node : INode);
begin
// Node.Value = Object.Value
end;
// UserEditorOpen event - Occurs when an user editor is about to be opened.
procedure TForm1.XMLGrid1UserEditorOpen(ASender: TObject; Object : IDispatch;Node : INode);
begin
// Object.Value = Node.Value
end;
with XMLGrid1 do
begin
NodeHeight := 24;
with Editors do
begin
with Add('ExComboUserEditor',EXMLGRIDLib_TLB.UserEditorType) do
begin
UserEditor('Exontrol.ComboBox','');
with (IUnknown(UserEditorObject) as EXCOMBOBOXLib_TLB.ComboBox) do
begin
MinHeightList := 164;
MinWidthList := 264;
AllowSizeGrip := True;
IntegralHeight := True;
Alignment := 0;
ColumnAutoResize := True;
BeginUpdate();
MarkSearchColumn := False;
with Columns do
begin
with (IUnknown(Add('Car')) as EXCOMBOBOXLib_TLB.Column) do
begin
Width := 32;
DisplayFilterButton := True;
end;
with (IUnknown(Add('Equipment')) as EXCOMBOBOXLib_TLB.Column) do
begin
DisplayFilterButton := True;
DisplayFilterPattern := False;
CustomFilter := 'Air Bag||*Air Bag*|||Air condition||*Air condition*|||ABS||*ABS*|||ESP||*ESP*';
FilterType := 3;
end;
end;
with Items do
begin
CellCaption[OleVariant(AddItem('Mazda')),OleVariant(1)] := 'Air Bag';
CellCaption[OleVariant(AddItem('Toyota')),OleVariant(1)] := 'Air Bag,Air condition';
CellCaption[OleVariant(AddItem('Ford')),OleVariant(1)] := 'Air condition';
CellCaption[OleVariant(AddItem('Nissan')),OleVariant(1)] := 'Air Bag,ABS,ESP';
end;
EndUpdate();
end;
end;
end;
with Nodes.Add('Car',Null,Null) do
begin
Editor := 'ExComboUserEditor';
Value := 'Mazda';
end;
end
|
5
|
How can I load a XML file

with XMLGrid1 do
begin
LoadXML('C:\Windows\Ultimate.xml');
end
|
4
|
How can I assign a tooltip to a node

with XMLGrid1 do
begin
with Nodes.Add('Title',Null,Null) do
begin
Value := 'value';
ToolTip := 'This is a bit of <b>HTML</b> text to be shown when the cursor hovers the node.';
end;
end
|
3
|
How can I edit the node using a DateType editor

with XMLGrid1 do
begin
with Editors do
begin
with Add('DateEditor',EXMLGRIDLib_TLB.DateType) do
begin
Option[EXMLGRIDLib_TLB.exDateMarkToday] := OleVariant(True);
end;
end;
with Nodes.Add('Date',Null,Null) do
begin
Editor := 'DateEditor';
Value := '1/1/2001';
end;
end
|
2
|
How can I expand a node

with XMLGrid1 do
begin
with Nodes.Add('Parent',Null,Null) do
begin
with Nodes do
begin
Add('Child 1',Null,Null);
Add('Child 2',Null,Null);
end;
Expanded := True;
end;
end
|
1
|
How can I add a node

with XMLGrid1 do
begin
with Nodes.Add('Parent',Null,Null).Nodes do
begin
Add('Child 1',Null,Null);
Add('Child 2',Null,Null);
end;
end
|