![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Подскажите, как правильно переопределить класс [D5, Win95/98]
Good Man © (2002-06-11 06:27:00)Есть класс TtreeNode, который представляет из себя, узел в TreeView.
Хотел добавить новое свойство в этот класс – NameRubric.
type
TMyTreeNode = class(TTreeNode)
private
FNameRubric: string;
public
property NameRubric: string read FNameRubric write FNameRubric;
end;
При создании этих узлов (TtreeNode) в TreeView1:
...
TreeItem: TMyTreeNode;
...
TreeItem := TreeView1.Items.AddChild(TreeView1.Items[0], ‘какой-то текст’);
Происходит ошибка:
Incompatible types: "TMyTreeNode" and "TTreeNode"
Polevi (2002-06-11 10:24:00) [1]Необходимо создать класс-наследник от TreeView
TMyTree = class(TCustomTreeView)
protected
function CreateNode: TTreeNode; override;
end;
function TMyTree.CreateNode: TTreeNode;
begin
Result := TMyNode.Create(Items);
end;
и тогда
TreeItem := TMyNode(TreeView1.Items.AddChild(TreeView1.Items[0], ‘какой-то текст’));
MBo (2002-06-11 06:47:00) [2]результат AddChild - TTreeNode, и его нельзя присвоить наследнику, а вот наоборот можно.
В твоем случае, IMHO, проще всего хранить дополниительную информацию в свойстве Treenode.Data - хоть целый объект