Sign in Join
Wiki copytemporary

TTreeView/hu: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: TTreeView/hu

OldNewLine
1+## Új elem hozzáadása a kódban
2+
3+Használd a TTreeView.Items.AddChild vagy a AddChildObject eljárásokat!
4+
5+==Egy rövid példa a TTreeView használatára==
6+
7+Itt egy gyors és egyszerű példa - Windows-on a Lazarus 0.9.26 változatával teszteltem:
8+
9+Hozz létre egy új alkalmazást! A Form1-hez adj egy üres TreeVeew-et (treeview1), valamint egy gombot (button1) "Gyermek hozzáadása" és egy másik gombot (button2) "Törlés" felirattal (caption)!
10+
11+A gombok OnClick eseményeihez rendelt az alábbi kódot, majd fordítsd le és futtasd!
12+
13+Kód:
14+
15+``` pascal
16+procedure TForm1.Button1Click(Sender: TObject);
17+var
18+ i: integer;
19+ s: string;
20+begin
21+ // ha nincsenek csomópontok/ágak létrehozza az elsőt, szülőként a Nil-t használva
22+ if TreeView1.Items.Count = 0 then
23+ begin
24+ Treeview1.Items.Add (nil,'Első');
25+ exit;
26+ end;
27+
28+ // Egyszerű szöveg megadása a további csomópontoknak/ágaknak - Elem1 , Elem2 stb.
29+ i := treeview1.Items.Count;
30+ s := 'Elem ' + inttostr(i);
31+ //Új csomópont hozzáadása a kiválasztott csomóponthoz
32+ if TreeView1.Selected <> nil then
33+ Treeview1.Items.AddChild(Treeview1.Selected ,s);
34+end;
35+
36+procedure TForm1.Button2Click(Sender: TObject);
37+
38+ //Az egymásba ágyazott elemek törlése
39+ Procedure DeleteNode(Node:TTreeNode);
40+ begin
41+ while Node.HasChildren do DeleteNode(node.GetLastChild);
42+ TreeView1.Items.Delete(Node) ;
43+ end;
44+
45+begin
46+ if TreeView1.Selected = nil then exit;
47+ //Ha a kiválasztott elemnek vannak gyermekei, akkor jóváhagyást kér
48+ If treeview1.Selected.HasChildren then
49+ if messagedlg('A csomópont és összes gyermekének törlése?',mtConfirmation,
50+ [mbYes,mbNo],0) <> mrYes then exit;
51+ DeleteNode(TreeView1.Selected);
52+end;
53+```
54+
55+Futtatáskor a treeview1 üres. Ha a "Gyermek hozzáadása" gombra kattintasz az első elem létre lesz hozva. Ezután mindig egy gyermek lesz létrehozva a kiválasztott elemhez amikor a "Gyermek hozzáadása" gombra kattintasz
56+
57+A "Törlés" törölni fogja a kiválasztott elemet. Ha nincs gyermeke azonnal törlődik, de ha van akkor előbb rákérdez.
58+
59+## TreeNode adatainak felszabadítása
60+
61+Használd a TreeView OnDeletion eseménykezelőjét az objektum(ok) felszabadítására.
62+
63+``` pascal
64+procedure TForm1.TreeView1Deletion(Sender: TObject; Node: TTreeNode);
65+begin
66+ TMyObject(Node.Data).Free;
67+end;
68+```
69+
70+## A fogd-és-vidd módszer használata egy TreeView-ben
71+
72+Ha szeretnéd használni a fogd-és-vidd módszert egy treeview-ben akkor a következőre van szükséged:
73+
74+1. Állítsd a treeview "Drag Mode" tulajdonságát DmAutomatic-ra!
75+2. Hozz létre eseménykezelőt az "OndragOver" eseményhez:
76+
77+``` pascal
78+procedure TForm1.TreeView1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);
79+begin
80+ Accept := true;
81+end;
82+```
83+
84+---
85+*From the Free Pascal wiki, page "TTreeView/hu", as it stood on 2020-03-02 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history