You've already forked lazarus-ccr
Implements the new DXF Tokenizer
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1458 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
42
applications/fpvviewer/dxftokentotree.pas
Normal file
42
applications/fpvviewer/dxftokentotree.pas
Normal file
@@ -0,0 +1,42 @@
|
||||
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.
|
||||
|
Reference in New Issue
Block a user