Hello. I have the class TPDEDiagramLink: DiagramLink.
An in this class I have some constructors:
public TPDEDiagramLink(Diagram a_ParentDiagram) : base(a_ParentDiagram)
{
Init();
}
public TPDEDiagramLink(Diagram parent, DiagramNode origin, DiagramNode destination) :
base(parent, origin, destination)
{
Init();
}
public TPDEDiagramLink(Diagram parent, DiagramNode origin, Point destination) :
base(parent, origin, destination)
{
Init();
}
public TPDEDiagramLink(Diagram parent, Point src, DiagramNode dest) :
base(parent, src, dest)
{
Init();
}
public TPDEDiagramLink(Diagram parent, Point src, Point dest) :
base(parent, src, dest)
{
Init();
}
Also I override the method Clone:
public override DiagramItem Clone(bool clipboard)
{
//TPDEDiagramLink link = base.Clone(clipboard) as TPDEDiagramLink;
object obj = base.Clone(clipboard);
if (obj is TPDEDiagramLink)
{
TPDEDiagramLink link = obj as TPDEDiagramLink;
link.DescriptionRu = DescriptionRu;
link.DescriptionEn = DescriptionEn;
//link.ImageHLink = ImageHLink;
//link.ImageData.Flush();
//ImageData.CopyTo(link.ImageData);
return link;
}
return obj as DiagramItem;
}
And when I try to copy link into Clipboard I go to Clone. But base.Clone(clipboard); return me the DiagramLink object, not the TPDEDiagramLink object. In case with a ShapeNode after base.Clone(true) I go to the copy constructor. What I need to do with links?