Тема: Створення простого класу
Вітаю, Слава Україні!
Windows 10 x64, Lazarus 2.2.4, FPC 3.2.2
Допоможіть знайти помилку в коді класу. З класами раніше не працював.
Намагаюсь створити простий клас для подальшого вдосконалення
unit Unit1;
{$mode ObjFPC}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
public
end;
type
TObjLamp = class
public
fname:string;
fcolor:string;
constructor Create(NewName, NewColor:string);
destructor Destroy; override;
property name: string read fname write fname;
property color: string read fcolor write fcolor;
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{TMyObject}
constructor TObjLamp.Create(NewName, NewColor:string);
begin
name:= NewName;
color:= NewColor;
end;
destructor TObjLamp.Destroy;
begin
inherited;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Lamp1:TObjLamp;
begin
Lamp1.Create('Lamp Red', 'Red');
ShowMessage('Name: '+Lamp1.name+' Color: '+Lamp1.color);
end;
end.
Проект компілюється але при натисканні на кнопку виникає помилка
Проект ... зазнав винятку класу 'External:ACCESS VIOLATION' Access violation reading from address $000000000000FDC8
В Delphi7 даний код працює хоча і виникає помилка після закриття програми але виводить назву та колір Lamp1.