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 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160
|
unit Test_TntTreeView_Main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, ExtCtrls,
Dialogs, StdCtrls,
ComCtrls,
ActiveIMM_TLB, TntActnList, TntAxCtrls, TntButtons, TntCheckLst, TntClasses, TntClipBrd, TntComCtrls,
TntControls, TntDialogs, TntExtActns, TntExtCtrls, TntExtDlgs, TntFileCtrl, TntFormatStrUtils, TntForms,
TntGraphics, TntGrids, TntListActns, TntMenus, TntRegistry, TntStdActns, TntStdCtrls, TntSystem,
TntSysUtils, TntWideStrings, TntWideStrUtils, TntWindows;
type TUnicodeObject = class
procedure Click(Sender: TObject);
procedure TVChange(Sender: TObject; Node: TTreeNode);
end;
type TMyTntTreeView = class(TPanel)
private
MyTreeView: TTntTreeView;
protected
procedure Createhandle; override;
published
Constructor Create(AOwner: TComponent);
end;
type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
TreeView1: TTreeView;
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;
var
Form1: TForm1;
TV: TMyTntTreeView;
TN: TTntTreeNode;
UnicodeObject: TUnicodeObject;
implementation
{$R *.dfm}
procedure TUnicodeObject.Click(Sender: TObject);
begin
Form1.Memo1.Lines.Add('Click');
end;
procedure TUnicodeObject.TVChange(Sender: TObject; Node: TTreeNode);
begin
Form1.Memo1.Lines.Add('Change');
end;
Constructor TMyTntTreeView.Create(AOwner: TComponent);
begin
inherited;
MyTreeView := TTntTreeView.Create(AOwner);
Width := MyTreeView.Width;
Height := MyTreeView.Height;
MyTreeView.Align := alClient;
end;
procedure TMyTntTreeView.Createhandle;
begin
inherited;
MyTreeView.Parent := self;
MyTreeView.Indent := 4;
MyTreeView.ShowRoot := true;
MyTreeView.ShowLines := true;
MyTreeView.ShowButtons := true;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if assigned(TV) then begin
showmessage('Objet déjà créé');
exit;
end;
TV := TMyTntTreeView.Create(Form1);
Tv.Parent := self;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
TV.Free;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if assigned(TV) then
TV.MyTreeView.OnClick := UnicodeObject.Click;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
// showmessage('Inactif car erreur en compilation.'+#13#10+'Activer la ligne dans le code pour voir le problème...');
if assigned(TV) then
TV.MyTreeView.OnChange := UnicodeObject.TVChange;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
if assigned(TV) then begin
TV.MyTreeView.Items.Add(nil,'First root');
TV.MyTreeView.Items.Add(nil,'Second root');
end;
end;
procedure TForm1.Button5Click(Sender: TObject);
var
i, n: integer;
begin
if assigned(TV) then begin
TN := nil;
n := TV.MyTreeView.Items.Count;
if n=0 then exit;
for i:=0 to n-1 do begin
if TV.MyTreeView.Items[i].Text='First root' then begin
TN := TV.MyTreeView.Items[i];
exit;
end;
end;
showmessage('non trouvé');
end;
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
if assigned(TV) then begin
if not assigned(TN) then showmessage('Aucun noeud "parent" n''est sélectionné');
TV.MyTreeView.Items.AddChild(TN,'Child 1');
TV.MyTreeView.Items.AddChild(TN,'Child 2');
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
UnicodeObject := TUnicodeObject.Create;
end;
end. |
Partager