Ver Mensaje Individual
  #11  
Antiguo 31-05-2012
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.474
Reputación: 21
newtron Va camino a la fama
Solucionado

Hola de nuevo. He modificado el código en función al post que me comentaba Casimiro y funciona correctamente. Se ha quedado de la siguiente forma:

Código Delphi [-]
procedure TFormFamilias.ActualizaArbol;
var
Nodo0,Nodo1,Nodo2,Nodo3,Nodo4: TTreeNode;
N: SmallInt;
MiClase: TMiClase;
begin
  Screen.Cursor:=crHourGlass;
  TreeView1.Items.Clear;
  Nodo0:=TreeView1.Items.AddChildObject(nil, 'Familias', MiClase);
  DataModule1.EDBQuery1.SQL.Clear;
  DataModule1.EDBQuery1.SQL.Add('SELECT * FROM FAMILIAS ORDER BY CODIGO');
  DataModule1.EDBQuery1.Open;
  DataModule1.EDBQuery1.First;
  while not DataModule1.EDBQuery1.eof do begin
    N:=Length(DataModule1.EDBQuery1.FieldByName('CODIGO').AsString);
    MiClase:= TMiClase.Create;
    MiClase.Codigo :=DataModule1.EDBQuery1.Fieldbyname('Codigo').AsString;
    case N of
      3: begin
        Nodo1:=TreeView1.Items.AddChildObject(Nodo0, DataModule1.EDBQuery1.FieldByName('NOMBRE').AsString, MiClase);
      end;
      6: begin
        Nodo2:=TreeView1.Items.AddChildObject(Nodo1, DataModule1.EDBQuery1.FieldByName('NOMBRE').AsString, MiClase);
      end;
      9: begin
        Nodo3:=TreeView1.Items.AddChildObject(Nodo2, DataModule1.EDBQuery1.FieldByName('NOMBRE').AsString, MiClase);
      end;
      12: begin
        Nodo4:=TreeView1.Items.AddChildObject(Nodo3, DataModule1.EDBQuery1.FieldByName('NOMBRE').AsString, MiClase);
      end;
    end;
    DataModule1.EDBQuery1.Next;
  end;
  Screen.Cursor:=crDefault;
end;

y en el evento OnClick

Código Delphi [-]
procedure TFormFamilias.TreeView1Click(Sender: TObject);
var
Nodo: TTreeNode;
begin
  Nodo:=TreeView1.Selected;
  ShowMessage(TMiClase(Nodo.Data).Codigo)
end;



Gracias a todos y un saludo

Edito: para que veais que soy bueno he cambiado el ExecSql por el Open :P
__________________
Be water my friend.

Última edición por newtron fecha: 31-05-2012 a las 14:06:09.
Responder Con Cita