Ошибка 216 при создании класса.
Добавлено: 28.02.2014 21:26:10
Добрый вечер.
main
При вызове PushFront(M); выдаёт ошибку 216.
Идея в том, что бы список реализовать в виде класса, а не просто функций. Раньше я классы не использовал.
- Код: Выделить всё
{$mode objfpc}
unit SCL;
interface
TYPE
TList = Class
type
PList = ^AList;
AList = record
Next : PList;
Data : POINTER;
end;
var
First: PList;
Last : PList;
PROCEDURE Init();
PROCEDURE PushFront(v: POINTER);
END;
implementation
PROCEDURE TList.PushFront(v: POINTER);
var
p: PList;
BEGIN
New(P);
P^.Data := V;
P^.Next := First;
First := P;
END;
PROCEDURE TList.Init();
BEGIN
First := NIL;
END;
BEGIN
END.
main
- Код: Выделить всё
{$mode objfpc}
PROGRAM main;
USES
SCL;
TYPE
PRect = ^TRect;
TRect = RECORD
X, Y, W, H: INTEGER;
END;
VAR
L: SCL.TList;
M: PRect;
BEGIN
New(M);
M^.X := 5;
//L.Create;
L.Init;
L.PushFront(M);
END.
При вызове PushFront(M); выдаёт ошибку 216.
Идея в том, что бы список реализовать в виде класса, а не просто функций. Раньше я классы не использовал.