Нет ничего проще.
Код:
unit MyTreeView;
interface
uses
SysUtils, Classes, Controls, ComCtrls, Messages;
type
TMyTreeView = class(TTreeView)
protected
procedure WndProc(var Message: TMessage); override;
procedure DblClick; override;
public
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('Samples', [TMyTreeView]);
end;
{ TMyTreeView }
procedure TMyTreeView.DblClick;
begin
inherited;
end;
procedure TMyTreeView.WndProc(var Message: TMessage);
begin
if Message.Msg = WM_LBUTTONDBLCLK then
DblClick
else
inherited WndProc(Message);
end;
end.
Регистрация через меню Component > Install Component...
Напомню, что поведение этого компонента, полностью повторяющего поведения стандартного TTreeView отличается только тем, что двойной клик на надписи элемента дерева не приводит к закрытию/открытию подчиненных ветвей. Закрыть/открыть ветви можно через кнопочку "плюс-минус" (если, конечно, они есть) или через клавиатуру навигационными клавишами.