TTreeView: implement DoCreateNodeClass. Allows descendants to override the class of the nodes without the need to use the (exposed) OnCreateNodeClass event.

git-svn-id: trunk@48183 -
This commit is contained in:
bart 2015-03-09 19:29:31 +00:00
parent 1a431d94fa
commit e92ce63e0c
2 changed files with 8 additions and 2 deletions

View File

@ -3337,6 +3337,7 @@ type
procedure CreateWnd; override;
procedure Delete(Node: TTreeNode); virtual;
procedure DestroyWnd; override;
procedure DoCreateNodeClass(var NewNodeClass: TTreeNodeClass); virtual;
procedure DoEndDrag(Target: TObject; X, Y: Integer); override;
function DoMouseWheel(Shift: TShiftState; WheelDelta: Integer;
MousePos: TPoint): Boolean; override;

View File

@ -3185,6 +3185,12 @@ begin
FLastVertScrollInfo.cbSize := 0;
end;
procedure TCustomTreeView.DoCreateNodeClass(var NewNodeClass: TTreeNodeClass);
begin
if Assigned(OnCreateNodeClass) then
OnCreateNodeClass(Self,NewNodeClass);
end;
procedure TCustomTreeView.BeginAutoDrag;
begin
BeginDrag(False);
@ -5165,8 +5171,7 @@ begin
if Result = nil then
begin
NewNodeClass:=TTreeNode;
if Assigned(OnCreateNodeClass) then
OnCreateNodeClass(Self,NewNodeClass);
DoCreateNodeClass(NewNodeClass);
Result := NewNodeClass.Create(Items);
end;
end;