вот это PCommandStack[Self.FCount].@Command вообще не должно скомпилироваться,
А вот это
PCommandStack[Self.FCount].Command:=ICommand;
PCommandStack[Self.FCount].Command:=@ICommand;
одно и то же.
И ещё раз: если работаете с GetMem, ReallocMem, FreeMem, то нельзя использовать динамический массив.
Надо тогда делать так
TCommandStackElmt = array[0 .. MaxInt div 4-1] of TCommandStackElement;
PCommandStackElmt = ^TCommandStackElmt;
и не использовать SetLength никогда
|