Fórum Ajuda com herança #292406
20/08/2005
0
var RootNode: TmyTreeNode; begin ... // Aqui gera o erro // Incompatible types: ´TmyTreeNode´ and ´TTreeNode´ RootNode := TreeView.Items.Add(nil, TreeViewRootName); end;
Declaração da classe TmtTreeNode
TmyTreeNode = class(TTreeNode)
private
{ private declarations }
FCode: integer;
FIsChild: Boolean;
protected
{ protected declarations }
public
{ public declarations }
property Code: integer read FCode write FCode;
property IsChild: Boolean read FIsChild write FIsChild;
end;
Rjun
Curtir tópico
+ 0Posts
20/08/2005
Marco Salles
Um Objeto da classe Ancestral Pode receber um Objeto da Classe Descendente , mas um objeto da classe Descendente não pode receber um Objeto da classe ancestral
Por exemplo
Seje
type
TAnimal = class
public
etc...
end;
TDog = class (TAnimal)
public
etc...
end;
Agora definimos
Var
Animal:TAnimal
Cachorro:TDog;
Esta atribuição
Begin
cachorro:=Animal
end
Da erro de :
[b:0d7b5028e1][Error] AnimF.pas(76): Incompatible types: ´TDog´ and ´TAnimal´[/b:0d7b5028e1]
[URL=http://imageshack.us][img:0d7b5028e1]http://img382.imageshack.us/img382/411/imagemclassedescendente7hc.jpg[/img:0d7b5028e1][/URL]
[b:0d7b5028e1]Porque Uma classe descendente não pode receber uma classe anscedente[/b:0d7b5028e1]
E No seu caso TmyTreeNode e descendente de TTreeNode
Gostei + 0
20/08/2005
Rjun
Gostei + 0
21/08/2005
Marco Salles
eu acho que neste caso não.. Pois mesmo que o projeto compilasse , na hora de execução voce teria erro... Pelos motivos explicados anteriormente
Gostei + 0
21/08/2005
Rjun
Obrigado pela resposta...acho que to cometendo bobagem mesmo...valeu....
Gostei + 0
21/08/2005
Rjun
Gostei + 0
22/08/2005
Kapak
TreeView1.Items.Add(nil, ´Nível 0´); TreeView1.Items.AddChild(Node, ´Filho de Node´);
Gostei + 0
22/08/2005
Massuda
Quando você executa o método TTreeView.Items.Add, internamente o método TTreeView.CreateNode é executado para criar um novo nó do treeview.
Gostei + 0
22/08/2005
Rjun
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)