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 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.