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
|
type TAnode = Record
Onglet : TBookMark; // pointage sur l'enregistrement
end;
procedure TAllNomen.Arbre;
var ANode:TTreeNode;
DataNoeud:^TAnode;
begin
ANode:=nil;
with TreeView.Items,TBase do
begin
BeginUpdate;
TreeView.OnChange:=nil;
DisableControls;
Clear;
while not EOF do
begin
if FieldByName('PARENT_NIVEAU').Value=0 then
begin
DataNoeud:=AllocMem(SizeOf(TAnode));
DataNoeud.Onglet:=GetBookMark;
ANode:=AddObject(nil,'',DataNoeud);
NodeImage(Anode); // Gestion Affichage
Next;
end
else Enfants(Anode,FieldByName('PARENT_NIVEAU').Value);
end;
TreeView.FullExpand;
EndUpdate;
EnableControls;
if TreeView.Items.Count>0 then TreeView.Selected:=TreeView.Items[0];
end; {with}
end;
procedure TAllNomen.Enfants(ANode : TTreeNode;Niveau : Integer);
var Node2 : TTreeNode;
DataNoeud:^TAnode;
begin
with TreeView.Items,TBase do
begin
DataNoeud:=AllocMem(SizeOf(TAnode));
DataNoeud.Onglet:=GetBookMark;
Node2:=AddChildObject(ANode,'',DataNoeud);
NodeImage(Node2);
Next;
while not EOF do
begin
if Niveau>FieldByName('PARENT_NIVEAU').Value then break;
if Niveau=FieldByName('PARENT_NIVEAU').Value then
begin
DataNoeud:=AllocMem(SizeOf(TAnode));
DataNoeud.Onglet:=GetBookMark;
Node2:=AddObject(Node2,'',DataNoeud);
NodeImage(Node2);
Next;
end
else Enfants(Node2,FieldByName('PARENT_NIVEAU').Value);
end;
end; {with}
end;
procedure TAllNomen.NodeImage(ANode : TTreeNode);
begin
if Anode<>nil then
begin
if <Condition>
then ANode.ImageIndex:=0
else ANode.ImageIndex:=1;
ANode.SelectedIndex:=ANode.ImageIndex;
if TBaseMatiere.isNull then Anode.text:=Format('%-15s',[TBasePIECE.Value])
else Anode.text:=Format('%-15s %-25s',[TBaseMATIERE.Value,
TBaseCOLORIS.Value]);
end;
end; |
Partager