- Код: Выделить всё
- 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.




