Работа с указателями

Доброго времени суток.Имеется следующие переменные:
FDantzigProblem: TDantzigProblem;FSimplexProblems: TObjectList<TSimplexProblem>;FSolutionProblem: ^TLPProblem;
где TLPProblem - общий предок для TDantzigProblem и TSimplexProblem.Каким образом можно "забить" в указатель FSolutionProblem ссылку на FDantzigProblem или один из FSimplexProblems? И как потом обратится через него к методам задачи?Спасибо.
5 ответов

FDantzigProblem: TDantzigProblem;FSimplexProblems: TObjectList<TSimplexProblem>;FSolutionProblem: TLPProblem;FSolutionProblem := FDantzigProblem; //"забиваем" ссылку// FSolutionProblem := FSimplexProblems[n];//обращаемся  if FSolutionProblem is TDantzigProblem then    TDantzigProblem(FSolutionProblem).DantzigProblemText := 'text'    else    if FSolutionProblem is TSimplexProblem then        TSimplexProblem(FSolutionProblem).SimplexProblemText := 'text';
Добавлено через 3 минуты и 49 секундесли нужен строго 
FSolutionProblem: ^TLPProblem;
то
FSolutionProblem := Pointer(FDantzigProblem); //"забиваем" ссылку// FSolutionProblem := Pointer(FSimplexProblems[n]);//обращаемся  if TLPProblem(FSolutionProblem) is TDantzigProblem then    TDantzigProblem(FSolutionProblem).DantzigProblemText := 'text'    else    if TLPProblem(FSolutionProblem) is TSimplexProblem then        TSimplexProblem(FSolutionProblem).SimplexProblemText := 'text';


Frees, а что будет экономичнее в смысле расходования памяти:
FSolutionProblem: ^TLPProblem;
или
FSolutionProblem: TLPProblem;
?


мне кажется одинаковоFSolutionProblem: TLPProblem; - тоже ссылкаДобавлено через 29 секундFSolutionProblem: ^TLPProblem; - 4 байтаFSolutionProblem: TLPProblem; - 4 байта


ОК, спасибо!


^TLPProblem - указатель на указатель.так что можно и напрямую использовать.а то, что работает одинаково - дельфи сама указатель переволит в объект.