![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() ![]() |
![]() |
Vardes |
![]()
Сообщение
#1
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 131 Пол: Мужской Репутация: ![]() ![]() ![]() |
Как можно исправить проблему???Не могу обратится к полю объекта....
Имеется два модуля: Главный, зависящий от формы и присоединённый к нему...Во втором модуле я описываю обект и его поля, а в главном с помощью процедуры 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), ну а если у меня классов много и все в процедуре, мне так их все и переписывать??? |
Алена |
![]()
Сообщение
#2
|
Гость ![]() |
А возникать будет ошибка по очень простой причине: ты пытаешься обратиться в DO к полю неинициализированного объекта! Ты же описываешь в каждом модуле свою переменную типа TLayer? Вот в одном модуле ты инициализируешь одну из них, а во втором - обращаешься к неинициализированному... А это AV...
|
Vardes |
![]()
Сообщение
#3
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 131 Пол: Мужской Репутация: ![]() ![]() ![]() |
Это я понимаю...а как выйти из этой проблемы?
|
Алена |
![]()
Сообщение
#4
|
Гость ![]() |
А не описывать в модуле main переменную Layer нельзя? Тогда Delphi будет проверять все подключаемые модули, а в одном из них уже есть такая переменная, будешь работать с ней.
|
Vardes |
![]()
Сообщение
#5
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 131 Пол: Мужской Репутация: ![]() ![]() ![]() |
Точно...спасибо тебе...проблема решилась)
|
![]() ![]() |
![]() |
Текстовая версия | 8.07.2025 9:40 |