Newsgroup: it.comp.lang.delphi
Titolo: Treeview

Ciao a tutti
Sono alle prime armi con delphi e vorrei utilizzare la treevew....
So come inserire e cancellare gli item ma non so come individuarli ,mi
spiego meglio....
Se clicco sulla treeview vorrei sapere come identifico l'item.Riesco a
sapere la proprietà Text ma non so come identificare l'item.In pratica
vorrei associare l'elemento di un array all'item premuto m anon ne ho la più
pallida idea di come fare.Qualcuno sa dove prendere un esempio che mi
spieghi meglio come usare la treeeview? ho cercato inrete ma non ho trovato
quasi nulla,solo qualcosa su come aggiungere item.
ciao

pallida idea di come fare.
Non so se puo' aiutarti.
Prendi un form, ci metti sopra un treeview, tre bottoni e
una label:
<CODE>
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls,
Forms, Dialogs,
  StdCtrls, ComCtrls;
type
  TForm1 = class(TForm)
    tvwAlbero: TTreeView;
    btnNuovoNodo: TButton;
    btnCancellaNodo: TButton;
    lblItemCorrente: TLabel;
    btnNuovoNodoFiglio: TButton;
    procedure btnNuovoNodoClick(Sender: TObject);
    procedure btnCancellaNodoClick(Sender: TObject);
    procedure btnNuovoNodoFiglioClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure tvwAlberoChange(Sender: TObject; Node:
TTreeNode);
  private
    procedure AggiornaLabelItemCorrente;
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.AggiornaLabelItemCorrente;
begin
  if (tvwAlbero.Selected = nil) then
    lblItemCorrente.Caption := '(nessun elemento
selezionato)'
  else
    lblItemCorrente.Caption := tvwAlbero.Selected.Text;
end;
procedure TForm1.btnNuovoNodoClick(Sender: TObject);
var
  Nome: String;
begin
  Nome := InputBox('Nuovo nodo', 'Nome nodo:', '');
  if (Nome <> '') then
  begin
    tvwAlbero.Items.Add(tvwAlbero.Selected,
                                  Nome);
  end
  else
    MessageDlg('Operazione annullata',
               mtWarning, [mbOk], 0);
  AggiornaLabelItemCorrente;
end;
procedure TForm1.btnCancellaNodoClick(Sender: TObject);
begin
  if (tvwAlbero.Selected <> nil) then
  begin
    case (MessageDlg('Sei convinto ?', mtWarning,
          [mbYes, mbNo], 0))
    of
         mrYes: tvwAlbero.Items.Delete(tvwAlbero.Selected);
         mrNo: MessageDlg('Operazione annullata',
                          mtWarning, [mbOk], 0);
    end
  end
  else
    MessageDlg('Nessun nodo da cancellare',
               mtWarning, [mbOk], 0);
  AggiornaLabelItemCorrente;
end;
procedure TForm1.btnNuovoNodoFiglioClick(Sender: TObject);
var
  Nome: String;
begin
  if (tvwAlbero.Selected <> nil) then
  begin
    Nome := InputBox('Nuovo nodo', 'Nome nodo:', '');
    if (Nome <> '') then
    begin
      tvwAlbero.Items.AddChild(tvwAlbero.Selected,
                               Nome);
    end
    else
      MessageDlg('Operazione annullata',
                 mtWarning, [mbOk], 0);
  end
  else
    MessageDlg('Nessun nodo genitore',
               mtWarning, [mbOk], 0);
  AggiornaLabelItemCorrente;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
  AggiornaLabelItemCorrente;
end;
procedure TForm1.tvwAlberoChange(Sender: TObject; Node:
TTreeNode);
begin
  AggiornaLabelItemCorrente;
end;
end.
</CODE>
-- 
Andrea Laforgia - walkietalkie(at)
libero.it
"Meglio cieco che negro" (Stevie Wonder)

 pallida idea di come fare.
Mmm non saprei.. ma forse puoi usare il campo Data di ogni TTreeNode,
per associare elementi di Treeview con tue strutture dati.
Ciao !                {MSX}
--
{MSX}  -  
http://msx.rules.it
Mantenitore delle FAQ di it.comp.lang.delphi,
reperibili qui: 
http://gpi.infomedia.it/abc/delphi/FaqDelphi.txt

 spiego meglio....
....
....
ringrazio tutti e due per la risposta ed il campo data era proprio quello
che cercavo.....
Approfitto del tread per chiedere un'altra cosa.Siccome devo riempire il
treeview con i dati di una tabella per l'identificazione vorrei usare un
metodo testuale,mi spiego meglio:
per aggiungere un item alla lista si usa AddChild(Item,'testo')  siccome
devo identificare l'item(spesso figlio di altri item)  tramite stringhe es:
padreGiuseppe
                      figlio1
                                 figlio-di-figlio1
                      figlio2
                      figlio3
per aggiungere  ' figlio-di-figlio1 ' per l'identificazione  ho solo i nomi
dei padri e mi servirebbe un metodo per fare questa cosa:
per identificare ho   :  padreGiuseppe  figlio1    e qui (con un metodo)
dovrei identificare il nodo e poi aggiungere   ' figlio-di-figlio1 '
.Essendo un programmatore VB (pentito) avevo gia una possibilità di
identificare con una stringa ma con delphi ??
Conoscete un metodo veloce per non leggere tutti i nodi e trovare quello
giusto(purtroppo la lista ha numerosi elementi) ?
grazie