Files
lazarus-ccr/applications/fpvviewer/dxftokentotree.pas
sekelsenmat d67eefba96 Implements the new DXF Tokenizer
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1458 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2011-01-25 14:13:33 +00:00

43 lines
1.0 KiB
ObjectPascal

unit dxftokentotree;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, ComCtrls,
dxfvectorialreader;
procedure ConvertDXFTokensToTreeView(ATokens: TDXFTokens; ATreeView: TTreeView);
procedure ConvertDXFTokensToTreeNodes(ATokens: TDXFTokens; ATreeNodes: TTreeNodes; ABaseNode: TTreeNode);
implementation
procedure ConvertDXFTokensToTreeView(ATokens: TDXFTokens; ATreeView: TTreeView);
begin
ATreeView.Items.Clear;
ConvertDXFTokensToTreeNodes(ATokens, ATreeView.Items, ATreeView.Items.GetFirstNode);
end;
procedure ConvertDXFTokensToTreeNodes(ATokens: TDXFTokens;
ATreeNodes: TTreeNodes; ABaseNode: TTreeNode);
var
AToken: TDXFToken;
NodeStr: string;
NewNode: TTreeNode;
i: Integer;
begin
if ATokens = nil then Exit;
for i := 0 to ATokens.Count - 1 do
begin
AToken := TDXFToken(ATokens.Items[i]);
NodeStr := Format('(%d %s)', [AToken.GroupCode, AToken.StrValue]);
NewNode := ATreeNodes.AddChild(ABaseNode, NodeStr);
ConvertDXFTokensToTreeNodes(AToken.Childs, NewNode.TreeNodes, NewNode);
end;
end;
end.