|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
07.10.2012, 20:45 | #1 |
Пользователь
Регистрация: 25.07.2011
Сообщений: 48
|
Доступ к полю класса из другого поля это класса
Собственно сабж. Немного поясню: есть объект, в нем 2 поля - форма и массив данных. Как из формы получить доступ к данным?
То что сразу приходит в голову-при создании объекта записывать ссылку на этот объект в переменную формы. |
07.10.2012, 21:10 | #2 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
А в чем проблема?
|
07.10.2012, 21:40 | #3 |
Пользователь
Регистрация: 25.07.2011
Сообщений: 48
|
Торможу наверно. Как получить указатель на объект имея другой объект-его поле?
Не могу подобрать слово, обозначающее в Delphi экземпляр класса по отношению к его полю. Как Родитель в наследовании, только в данном случае композиция. |
07.10.2012, 22:40 | #4 | |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
Цитата:
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
|
07.10.2012, 23:05 | #5 |
Пользователь
Регистрация: 25.07.2011
Сообщений: 48
|
Как зачем? Форме нужны данные, которые хранятся в объекте уровнем "выше".
Через переменную естественно все работает, но возможно есть другое решение. Кстати слово - Owner. Ну по крайней мере применительно к компонентам. |
08.10.2012, 09:41 | #6 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,886
|
А не логично ли чтобы массив данных был у формы? Если к нему кто-то ещё обращается помимо формы - то пусть через форму обращается (конечно, надо чтобы оба были public)
На случай, если и это не приемлемо в задаче, то тут только с передачей в форму некоего владельца, можно использовать и существующее свойство Owner , но если объект верхнего уровня не компонент, то , скорее всего, не выйдет. Ну а по владельцу в методах формы обратиться к массиву несложно. |
08.10.2012, 10:01 | #7 | |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Цитата:
И от ссылок избавляйтесь. Если есть у Вас ООП, не смешивайте все в одну кучу - обратились к объекту, он предоставил Вам сведения и все.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
|
08.10.2012, 18:11 | #8 |
Пользователь
Регистрация: 25.07.2011
Сообщений: 48
|
phomm, это все понятно. В контексте моей задачи форма имеет второстепенное значение, данные обрабатываются объектом-ее владельцем (не компонент).
Utkin, чтобы обратиться к объекту и воспользоваться его методами, надо как то "выйти" на него, найти ссылку на него. Таких объектов много, создаются и разрушаются динамически, и иногда надо выходить на объект работая с его формой. В общем мне кажется самым правильным будет создать в форме поле и записывать имя владельца туда. То бишь самому реализовать свойство Owner. Посижу еще, подумаю. Я ожидал что в Delphi у всех объектов есть свойство Owner, а оно оказывается применительно только к TComponent. |
08.10.2012, 18:41 | #9 | |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
Цитата:
От ответа на вопрос "зачем" зависит всё. Ну вот сделаете вы ссылку в форме на объект-хозяина данных, а завтра появится возможность/необходимость получить данные не от своего хозяина, а от другого. Будете добавлять ещё одну ссылку? От источника инициативы зависит организация передачи данных. Допустим, данные нужны по инициативе юзера. Тогда неплохо у формы иметь доступ к менеджеру данных, котрый сможет эти данные предоставить форме, по её требованию. И пусть это будет вечный менеджер, который не прыгает туда-сюда по памяти, а живет всё время жизни программы. А если источник инициативы сами данные, то лучше у формы добавить метод, типа Код:
С обратной стороны, хранить ссылку на форму вместе с данными не очень верное решение, имхо. Данные могут храниться в базе данных, передаваться по сети. Форма тут при чём? А если завтра надо будет похожее консольное приложение сделать, или сервис. Все будете переписывать?
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
|
08.10.2012, 22:33 | #10 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Объекты - экземпляры одного класса?
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Доступ к окнам из другого класса | Стремящийся | Win Api | 18 | 01.09.2012 22:47 |
Доступ к обьекту другого класса. | the27mart | Общие вопросы по Java, Java SE, Kotlin | 6 | 08.08.2012 19:30 |
Доступ к TextBox в WPF из другого класса | CoderWPF | WPF, UWP, WinRT, XAML | 2 | 15.03.2012 11:07 |
Доступ к полю класса(используя STL) | shocker | Помощь студентам | 1 | 29.03.2011 17:15 |
Доступ из другого класса | KipZ | Windows Forms | 1 | 06.02.2011 15:22 |