¿Es posible usar el TTreeView estándar para cambiar el Expandir y contraer la imagen?TTreeView - ¿Cambiar Expandir y contraer imagen?
no me refiero a las imágenes de nodo, me refiero a las pequeñas flechas junto a los nodos que tienen los niños, así:
Tu lugar ideal para mostrar las flechas como símbolos + y -, al igual que la estructura de componentes Delphi árbol:
Si es posible cambiar esto, ¿cómo hago para hacerlo?
Demostración de Trabajo sobre la base de respuesta de David
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, Themes, uxTheme;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type
TMyTreeView = class(TTreeView)
protected
procedure CreateWnd; override;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TMyTreeView }
procedure TMyTreeView.CreateWnd;
begin
inherited;
if ThemeServices.Enabled and CheckWin32Version(6, 0) then
SetWindowTheme(Handle, nil, nil);
end;
procedure TForm1.FormCreate(Sender: TObject);
var
MyTree: TMyTreeView;
Node: TTreeNode;
begin
MyTree := TMyTreeView.Create(nil);
with MyTree do
begin
Parent := Self;
Height := 100;
Width := 100;
Left := 30;
Top := 30;
Node := Items.Add(nil, 'Item');
Items.AddChild(Node, 'Item');
Node := Items.AddChild(Node, 'Item');
Items.AddChild(Node, 'Item');
end;
end;
end.
El resultado:
muy bien informado :) Tendré que probar lo último de su solución publicada. –
Puede llamar a la función desde el formulario OnCreate para probarla. El enfoque CreateWnd es lo que necesita para "hacerlo bien". –
funciona de maravilla, voy a editar la publicación superior con la forma en que implementé su respuesta. –