-
Notifications
You must be signed in to change notification settings - Fork 0
/
workroom.pas
98 lines (78 loc) · 2.66 KB
/
workroom.pas
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
unit workroom;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, VirtualTrees, sEdit, sTreeView;
type
Tworkroom_form = class(TForm)
Edit1: TsEdit;
Edit2: TsEdit;
VirtualStringTree1: TVirtualStringTree;
tv1: TsTreeView;
procedure Edit1Change(Sender: TObject);
procedure Edit2KeyPress(Sender: TObject; var Key: Char);
procedure VirtualStringTree1GetText(Sender: TBaseVirtualTree;
Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
var CellText: WideString);
procedure VirtualStringTree1FreeNode(Sender: TBaseVirtualTree;
Node: PVirtualNode);
procedure Edit2Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
workroom_form: Tworkroom_form;
implementation
uses unit1, reference_list, directum_metadata, section_list, virtual_tree_routine;
{$R *.dfm}
procedure Tworkroom_form.Edit1Change(Sender: TObject);
begin
references.SetReferenceFilter( edit1.Text );
references.ApplyVirtualVisibility( VirtualStringTree1 );
end;
procedure Tworkroom_form.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
begin
references.SetRequisiteFilter( edit2.Text );
// references.FeelTreeView( TreeView1 );
end;
end;
procedure Tworkroom_form.VirtualStringTree1GetText(
Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex;
TextType: TVSTTextType; var CellText: WideString);
var
Data: PVSTRecord;
begin
Data := Sender.GetNodeData(Node);
if Assigned(Data) then
begin
if Data.node_type = reference_type then
celltext := TPointerDIRReference( Data.object_pointer ).name;
if Data.node_type = document_type then
celltext := TPointerDIRReference( Data.object_pointer ).name;
if Data.node_type = section_type then
celltext := TPointerDIRSection( Data.object_pointer ).name;
if Data.node_type = reference_requisite_type then
celltext := TPointerDIRReferenceRequisite( Data.object_pointer ).name;
if Data.node_type = document_requisite_type then
celltext := TPointerDIRReferenceRequisite( Data.object_pointer ).name;
end;
end;
procedure Tworkroom_form.VirtualStringTree1FreeNode(
Sender: TBaseVirtualTree; Node: PVirtualNode);
var
Data: PVSTRecord;
begin
Data := Sender.GetNodeData(Node);
if Assigned(Data) then
Finalize(Data^);
end;
procedure Tworkroom_form.Edit2Change(Sender: TObject);
begin
references.SetRequisiteFilter( edit2.Text );
references.ApplyVirtualVisibility( VirtualStringTree1 );
end;
end.