Written by xinyiman Novembre 02, 2011, 10:27:00 am21209 ViewsRating: 0 (0 Rates)Print
A volte può nascere l'esigenza di creare dei menù laterali, e il modo più semplice per crearli è attraverso l'oggetto TTreeView che contiene una struttura ad albero, segue un esempio e al fondo trovate il link all'esempio da scaricarvi per analizzarlo e giocarci.
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
s: string;
begin
// if there is no nodes, create a root node with a parent of Nil
if TreeView1.Items.Count = 0 then
begin
Treeview1.Items.Add (nil,'Root Node');
exit;
end;
// Set up a simple text for each new node - Node1 , Node2 etc
i := treeview1.Items.Count;
s := 'Node ' + inttostr(i);
//Add a new node to the currently selected node
if TreeView1.Selected <> nil then
Treeview1.Items.AddChild(Treeview1.Selected ,s);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if TreeView1.Selected = nil then exit;
//If selected node has child nodes, first ask for confirmation
If treeview1.Selected.HasChildren then
if messagedlg('Delete node and all children ?',mtConfirmation,
[mbYes,mbNo],0) <> mrYes then exit;
DeleteNode(TreeView1.Selected);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
ShowMessage(TreeView1.Selected.GetTextPath);
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
ShowMessage(TreeView1.Selected.Text);
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
ShowMessage('Indice assoluto: ' + IntToStr(TreeView1.Selected.AbsoluteIndex));
end;
//A procedure to recursively delete nodes
Procedure TForm1.DeleteNode(Node:TTreeNode);
begin
while Node.HasChildren do DeleteNode(node.GetLastChild);
TreeView1.Items.Delete(Node) ;
end;
end.
Link: www.lazaruspascal.it/esempi/TTreeView.zip
About the author
xinyiman registered at Italian community of Lazarus and Free Pascal on Ottobre 14, 2011, 10:56:28 pm and has posted 3286 posts in the boards since then. Last visit was Dicembre 11, 2024, 02:12:20 pm.
Questo blog non rappresenta una testata giornalistica poiché viene
aggiornato senza alcuna periodicità. Non può pertanto considerarsi un
prodotto editoriale ai sensi della legge n. 62/2001.
Questo sito utilizza cookie, anche di terze parti, per offriti servizi in linea con le tue preferenze. Chiudendo questo banner, scorrendo questa pagina, cliccando su un link o proseguendo la navigazione in altra maniera, acconsenti all’uso dei cookie.