[решено] создание объекта. Что я делаю не так?
Добавлено: 12.11.2013 17:10:53
создаю класс, для проверки создаю две кнопки создания/удаления объекта класса. Вроде бы все понятно, но выдает ошибку при создании объекта. Отключение отладчика/смена оси и версии компилятора не играет никакой роли.
- Код: Выделить всё
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,Lexers;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
T:^Token; // временный токен
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
begin
memo1.Append('Запущен конструктор. root=');
T^.Create;
memo1.Append(T^.GetToken);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
memo1.Append('Запущен деструктор root=');
T^.free;
If T=nil then Memo1.Append('nil')
else memo1.Append(T^.GetToken);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
memo1.Clear;
end;
end.
- Код: Выделить всё
unit Lexers;
{$mode objfpc}{$H+}
interface
Type
//-------------------------класс Token--------------------------
Token = class //(TObject)
public
Text:string;
constructor Create; virtual;
destructor Destroy; override;
Procedure SetToken (Str:String); virtual;// задать значение
function GetToken:String; virtual;
end;
implementation
//-----------------класс Token--------------------------
Constructor Token.Create;
Begin
inherited Create;
Text:='';
End;
Destructor Token.Destroy;
Begin
Text:='';
Free;
end;
Procedure Token.SetToken(Str:String);
Begin
Text:=Str;
End;
Function Token.GetToken:String;
Begin
Result:=Text;
end;
End.