Помощь - Поиск - Пользователи - Календарь
Полная версия: Поля объекта....
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
Vardes
Как можно исправить проблему???Не могу обратится к полю объекта....
Имеется два модуля: Главный, зависящий от формы и присоединённый к нему...Во втором модуле я описываю обект и его поля, а в главном с помощью процедуры 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), ну а если у меня классов много и все в процедуре, мне так их все и переписывать???
Алена
А возникать будет ошибка по очень простой причине: ты пытаешься обратиться в DO к полю неинициализированного объекта! Ты же описываешь в каждом модуле свою переменную типа TLayer? Вот в одном модуле ты инициализируешь одну из них, а во втором - обращаешься к неинициализированному... А это AV...
Vardes
Это я понимаю...а как выйти из этой проблемы?
Алена
А не описывать в модуле main переменную Layer нельзя? Тогда Delphi будет проверять все подключаемые модули, а в одном из них уже есть такая переменная, будешь работать с ней.
Vardes
Точно...спасибо тебе...проблема решилась)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.