int FCableType;
__property int CableType = {read = FCableType, write = FCableType};
Is this C++/CLI or something? C++ doesn't have properties in the same sense that C# does.
Anyway it sounds like TLine is a TPanel and not a TTerminal. You can't access derived members from a parent reference/pointer/object.
Consider the following:
1 2 3
TPanel* foo = new Some_Other_type_Thats_derived_from_TPanel_but_doesnt_have_a_CableType_member;
foo->CableType = whatever; // <- how could this work?
Because of this you either need to downcast to TTerminal (ew), or change TLine so that it points to TTerminals instead of TPanels (probably not what you want). Or better yet, initialize this object via a TTerminal before giving it to TLine: