Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Делфи _ Поля объекта....

Автор: Vardes 26.01.2007 22:28

Как можно исправить проблему???Не могу обратится к полю объекта....
Имеется два модуля: Главный, зависящий от формы и присоединённый к нему...Во втором модуле я описываю обект и его поля, а в главном с помощью процедуры Form1.Create, отвожу память под поля...так вот теперь я не могу обратиться к полям объекта через 2-ой модуль...(может немного запутано...поясняю)

Код

unit main;
......
uses prog;
......
var
Layer:TLayer;

procedure TForm1.FormCreate(Sender: TObject);
begin
Layer:=TLayer.Create;
end;
procedure A;
begin
Do;
end;
end.

Код

unit prog;
type
TLayer:class
w:real
end;
var Layer:TLayer
......
......
.......
Procedure Do;
begin
Layer.w:=0.5; //здесь и возникает ошибка...можно сделать так Procedure DO(Layer:TLayer), ну а если у меня классов много и все в процедуре, мне так их все и переписывать???

Автор: Алена 26.01.2007 23:01

А возникать будет ошибка по очень простой причине: ты пытаешься обратиться в DO к полю неинициализированного объекта! Ты же описываешь в каждом модуле свою переменную типа TLayer? Вот в одном модуле ты инициализируешь одну из них, а во втором - обращаешься к неинициализированному... А это AV...

Автор: Vardes 26.01.2007 23:09

Это я понимаю...а как выйти из этой проблемы?

Автор: Алена 26.01.2007 23:16

А не описывать в модуле main переменную Layer нельзя? Тогда Delphi будет проверять все подключаемые модули, а в одном из них уже есть такая переменная, будешь работать с ней.

Автор: Vardes 26.01.2007 23:32

Точно...спасибо тебе...проблема решилась)