Или подскажите ресурсы, где внятно написано, что из себя представляют динамические двунаправленные списки?

По-моему списки – это структуры описывающие свойства чего либо.
Описывается так:
Структура = record.
Свойство1 : integer
Свойсво2 : string
И т.д.
Когда объявляется структура, надо указать ее как динамический тип:
begin
PWinSize = ^WinSize {добавлен указатель}.
Winsize = record
Left, top, width, height : integer;
end;
Теперь чтобы поместить структуру не в стеке, а в динамической памяти, мы должны использовать именно PWinSize.