Как правильно объявить структуру?

День добрый.
Подскажите пжлста как по фэн-шую объявить структуры данных, а то я совсем что-то запутался, в объектах, классах, свойствах, дженериках и пр.
Хочу чтобы было так приблизительно:
ELEMENT=????? какой-то тип, а в нем поля
ELEMENT.Name =string имя, тут все просто
ELEMENT.Data = ???? а вот тут Data может быть Int64 или WideStrings или Currency или array of byte
Нужно чтобы шустро работало, и без заморочек в коде, типа указателя на данные в куче.
Например если А и В оба типа TElement можно было бы сделать красиво A:=B при этом данные из экземпляра В скопировались в экземпляр А;
Хелп плиз
Подскажите пжлста как по фэн-шую объявить структуры данных, а то я совсем что-то запутался, в объектах, классах, свойствах, дженериках и пр.
Хочу чтобы было так приблизительно:
ELEMENT=????? какой-то тип, а в нем поля
ELEMENT.Name =string имя, тут все просто
ELEMENT.Data = ???? а вот тут Data может быть Int64 или WideStrings или Currency или array of byte
Нужно чтобы шустро работало, и без заморочек в коде, типа указателя на данные в куче.
Например если А и В оба типа TElement можно было бы сделать красиво A:=B при этом данные из экземпляра В скопировались в экземпляр А;
Хелп плиз
