Ver Mensaje Individual
  #1  
Antiguo 01-04-2011
Ledian_Fdez Ledian_Fdez is offline
Miembro
 
Registrado: jun 2006
Ubicación: Ciudad Habana, Cuba
Posts: 242
Reputación: 21
Ledian_Fdez Va por buen camino
Lightbulb Ayuda con este procedimiento

Hola chicos y chicas de este foro:

He creado este procedimiento para llenar los TreeView

Código Delphi [-]
Procedure LlenaTreeView(TreeView: TTreeView; Tabla: TADOQuery; Img1: Integer; Img2: Integer);
var
 Texto: String;
 TodosPtr, Nodo: TTreeNode;
begin
 TreeView.Items.Clear;
 TodosPtr:= TreeView.Items.Add(nil, 'Todas');
 TodosPtr.ImageIndex := Img1;
 TodosPtr.SelectedIndex := Img1;
 TodosPtr.StateIndex := Img1;
 Tabla.Open;
 Tabla.First;
 while not Tabla.Eof do
   begin
    Texto:= Tabla.Fields[0].AsString + '-' + Tabla.Fields[1].AsString;
    Nodo:= TreeView.Items.AddChild(TodosPtr, Texto);
    Nodo.ImageIndex := Img2;
    Nodo.SelectedIndex := Img2;
    Nodo.StateIndex := Img2;
    Tabla.Next;
   end;
 Tabla.Close;
end;

Pero resulta ser que después de usarlo varias veces en mi proyecto me doy cuenta que ahora necesito llenar otro TreeView, solo que la variable Texto no necesita ser el resultado de la concatenación del campo1 y campo2
Código Delphi [-]
Texto := Tabla.Fields[0].AsString

Habrá alguna forma de declarar o implementar dicho procedimiento donde no nesecite crearlo de nuevo.

Pense en ...
Código Delphi [-]
Procedure LlenaTreeView(TreeView: TTreeView; Tabla: TADOQuery; Img1: Integer; Img2: Integer, flat: Boolean);
var
 Texto: String;
 TodosPtr, Nodo: TTreeNode;
begin
 TreeView.Items.Clear;
 TodosPtr:= TreeView.Items.Add(nil, 'Todas');
 TodosPtr.ImageIndex := Img1;
 TodosPtr.SelectedIndex := Img1;
 TodosPtr.StateIndex := Img1;
 Tabla.Open;
 Tabla.First;
 while not Tabla.Eof do
   begin
    Texto:= Tabla.Fields[0].AsString;
    if flat then  // true --> para el caso de concatenar los campos
       Texto:=  Texto + '-' + Tabla.Fields[1].AsString;
    Nodo:= TreeView.Items.AddChild(TodosPtr, Texto);
    Nodo.ImageIndex := Img2;
    Nodo.SelectedIndex := Img2;
    Nodo.StateIndex := Img2;
    Tabla.Next;
   end;
 Tabla.Close;
end;

Pero no me convence mucho aunque lo hace bien, no se... quisiera oír recomendaciones y criterios al respecto.

Gracia de antemano
salu2
Yo.
Responder Con Cita