Показать сообщение отдельно
  #8  
Старый 25.12.2008, 15:46
san-46 san-46 вне форума
Активный
 
Регистрация: 25.04.2008
Сообщения: 383
Репутация: 33
По умолчанию

Нет ничего проще.
Код:
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 отличается только тем, что двойной клик на надписи элемента дерева не приводит к закрытию/открытию подчиненных ветвей. Закрыть/открыть ветви можно через кнопочку "плюс-минус" (если, конечно, они есть) или через клавиатуру навигационными клавишами.
__________________
Не забывайте делать резервные копии
Ответить с цитированием