Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 05.10.2017, 13:12   #1
eybrev
Пользователь
 
Регистрация: 05.10.2017
Сообщений: 12
Репутация: 10
По умолчанию Присваивание переменной: Form1 vs DataModule

Доброго господа!
Прошу помочь, не могу понять в чем же соль:

Есть формы:
Form1, DataModule

Перменная:
var Q: TFDQuery

И компоненты:
Form1.FDQuery1, DataModule.FDQuery2;


Присваиваю перемнной компонент из той же формы что и перменная, все гуд:

Код:

unit Unit1;
...
var
varQry:TFdQuery;
...
varQry:= FDQuery1;
..

а если компонент находится в DataModule, вылетает ошибка:

Код:

unit Unit1;
...
Uses Unit2
...
var
varQry:TFdQuery;
...
varQry:= DataModule.FDQuery2;
..

В чем ошибка? Прошу помочь, Спасибо!

Решение - DataModule еще не был создан, когда пытался присвоить переменной компонент (спс Serge_Bliznykov)

Последний раз редактировалось eybrev; 05.10.2017 в 18:36.
eybrev вне форума   Ответить с цитированием
Старый 05.10.2017, 13:21   #2
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 23,906
Репутация: 5228
По умолчанию

Цитата:
Сообщение от eybrev Посмотреть сообщение
а если компонент находится в DataModule, вылетает ошибка:
секретная?


Цитата:
Сообщение от eybrev Посмотреть сообщение
varQry:= DataModule.FDQuery2;
ну, например, DataModule ещё не создан в момент присвоения. Тогда, при попытке обращения к несозданному объекту будет access violation...
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 05.10.2017, 13:29   #3
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 11,553
Репутация: 1916

icq: 216409213
По умолчанию

Или компонент в привате.
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x вне форума   Ответить с цитированием
Старый 05.10.2017, 18:31   #4
eybrev
Пользователь
 
Регистрация: 05.10.2017
Сообщений: 12
Репутация: 10
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
ну, например, DataModule ещё не создан в момент присвоения. Тогда, при попытке обращения к несозданному объекту будет access violation...
Да, спасибо, то что нужно. Делал все на Form1.OnCreate и DM еще не был создан. Спасибос!
eybrev вне форума   Ответить с цитированием
Старый 11.10.2017, 12:47   #5
dummy_user
Форумчанин
 
Аватар для dummy_user
 
Регистрация: 02.03.2013
Адрес: Сибирь
Сообщений: 109
Репутация: 27

skype: raw_2_raw
По умолчанию

Да, пользуйтесь функцией Assign() для проверки валидности объекта.
dummy_user вне форума   Ответить с цитированием
Старый 11.10.2017, 13:17   #6
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 23,906
Репутация: 5228
По умолчанию

Цитата:
Сообщение от dummy_user Посмотреть сообщение
Да, пользуйтесь функцией Assign() для проверки валидности объекта.
путаете с Assigned()
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 12.10.2017, 16:43   #7
dummy_user
Форумчанин
 
Аватар для dummy_user
 
Регистрация: 02.03.2013
Адрес: Сибирь
Сообщений: 109
Репутация: 27

skype: raw_2_raw
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
путаете с Assigned()
Да, верно.
dummy_user вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
База + ComboBox, присваивание переменной Evil_Net БД в Delphi 12 05.08.2015 20:00
Присваивание edit переменной. sinobithug Общие вопросы C/C++ 2 13.04.2014 23:34
присваивание переменной "левого" значения kibcat Общие вопросы C/C++ 3 17.05.2012 00:07
Присваивание переменной значения ячейки Soviet Microsoft Office Excel 4 02.04.2012 12:24
Неправильный вывод или присваивание char переменной. PlumBoom Общие вопросы C/C++ 3 23.03.2010 07:34


22:00.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru