Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Ayuda con este procedimiento (https://www.clubdelphi.com/foros/showthread.php?t=73122)

Ledian_Fdez 01-04-2011 21:09:53

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 ... :rolleyes:
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. :confused:

Gracia de antemano
salu2
Yo.

oscarac 01-04-2011 21:35:12

pues si es lo mismo....

y si no necesitan concatenar.. me parece que lo que has hecho (controlarlo a traves de un parametro) esta bien :)


La franja horaria es GMT +2. Ahora son las 14:21:24.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi