Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   TreeView !!! (https://www.clubdelphi.com/foros/showthread.php?t=67615)

Ledian_Fdez 26-04-2010 19:36:52

TreeView !!!
 
Holas amigos de este foro:

Tengo en un formulario un TreeView y otros controles. Selecciono un nodo del TreeView y al pasar el focus a otro control no se me muestra seleccionado el nodo del TreeView. Habrá laguna forma de mantener la selección?

Salu2,
Ledian.

cloayza 26-04-2010 19:46:55

Hay dos opciones:

1) Poner la propiedad HideSelection a False, al perder el foco el item seleccionado aparecera en un color opaco.
2) Pintar de un color determinado el item cuando pierde el foco, para ello debes colocar ele siguiente codigo

Código Delphi [-]
procedure TForm1.TreeView1CustomDrawItem(Sender: TCustomTreeView;
  Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
     If (Not TreeView1.Focused) And (TreeView1.Selected <>NIL) Then
        TreeView1.Canvas.Brush.Color := clRed; //Color cuando el item pierde el foco.

end;

Saludos

Caro 26-04-2010 19:54:35

Hola Ledian, como te han indicado debes colocar la propiedad HideSelection a False y para que no quede el color opaco:

Código Delphi [-]
procedure TForm1.TreeView1CustomDrawItem(Sender: TCustomTreeView;
  Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
 if cdsSelected in state then //Si esta seleccionado
  begin
   TreeView1.canvas.brush.color:=clBlue;
   TreeView1.canvas.Font.Color:=clWhite;
  end;
end;

Saluditos

Caro 26-04-2010 20:03:45

Cita:

Empezado por cloayza (Mensaje 361943)
Código Delphi [-]
procedure TForm1.TreeView1CustomDrawItem(Sender: TCustomTreeView;
Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
If (Not TreeView1.Focused) And (TreeView1.Selected <>NIL) Then
TreeView1.Canvas.Brush.Color := clRed; //Color cuando el item pierde el foco.

end;


Hola Cloayza, acabo de probar tu codigo, cuando seleccionas un item y te pasas a otro componente y luego seleccionas otro item también se pinta como seleccionado y así sucesivamente.

Saluditos

cloayza 27-04-2010 00:23:28

Cita:

Empezado por Caro (Mensaje 361945)
Hola Cloayza, acabo de probar tu codigo, cuando seleccionas un item y te pasas a otro componente y luego seleccionas otro item también se pinta como seleccionado y así sucesivamente.

Saluditos

Caro...Tienes razon...:mad:

Mi idea era que no perdiera el color que por defecto tiene el treeview y solo cambiara el color cuando el item esta seleccionado y el treeview no tiene foco.

Que tal ahora...:D:D:D

Código Delphi [-]
procedure TForm1.TreeView1CustomDrawItem(Sender: TCustomTreeView;
  Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
     If (Not TreeView1.Focused) And (cdsSelected in state) Then
        TreeView1.Canvas.Brush.Color := clRed;
end;

Saludos...


La franja horaria es GMT +2. Ahora son las 12:35:59.

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