Форум: "Основная";
Текущий архив: 2004.11.21;
Скачать: [xml.tar.bz2];
ВнизСоздание Класса Найти похожие ветки
← →
Yus (2004-11-10 20:13) [0]Доброго всем вечера. Создаю класс MyClass который имеет массив Buf. Все компилируется, но при попытке записать в Buf значение выдает ошибку "Запись по адресу 000008". Подскажите, где ошибка
unit Unit1;
interface
uses
Windows,Unit2, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
myclass.Buf[1]:=1;
end;
end.
//---------------------------------------------------------------
unit Unit2;
interface
uses
Windows;
type
TMyClass = class(TObject)
private
{ Private declarations }
public
Buf:array[0..5]of integer;
{ Public declarations }
end;
var
MyClass: TMyClass;
implementation
end.
← →
begin...end © (2004-11-10 20:15) [1]Yus (10.11.04 20:13)
Может, объект вначале нужно создать?
← →
Yus (2004-11-11 05:36) [2]Никто не знает??
← →
ЮЮ © (2004-11-11 05:56) [3]Тебе же ответили: сначала надо создать экземпляр класса. Без создания экземпляра можно пользоваться только методами класса, но то в свою очередь не должен аользоваться полями. Поэтому в твоем случае надо:
if myclass = nil then myclass := TMyClass.Create;
myclass.Buf[1]:=1;
З.Ы. выносить поля (Buf) в public секцию, имхо, нехороший стиль -зта секция только для свойств и методов, а место полей - только в private
← →
Yus (2004-11-11 06:05) [4]Все, понял. Благодарю!!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.11.21;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.037 c