Có thể sử dụng TTreeView tiêu chuẩn để thay đổi Hình ảnh Mở rộng và Thu gọn không?TTreeView - Thay đổi Mở rộng và Thu gọn Hình ảnh?
Tôi không có ý hình ảnh Node, ý tôi là các mũi tên nhỏ bên cạnh nút mà có con, như vậy:
Lý tưởng nhất là tôi muốn các mũi tên để hiển thị như + và - Các ký hiệu, như Delphi cây cấu trúc thành phần:
Nếu chúng ta có thể thay đổi điều này, làm thế nào tôi sẽ đi về làm việc đó?
Demo làm việc dựa trên trả lời của 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.
Kết quả:
rất am hiểu :) Tôi sẽ phải thử giải pháp sau đã đăng của bạn .. –
Bạn chỉ có thể gọi hàm từ biểu mẫu OnCreate để kiểm tra. Cách tiếp cận CreateWnd là những gì bạn cần để "làm điều đó đúng". –
hoạt động nhờ tuyệt vời, tôi sẽ chỉnh sửa bài đăng hàng đầu với cách tôi đã thực hiện câu trả lời của bạn. –