|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
07.06.2012, 00:30 | #1 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Передача данных обьектов между 2-мя формами, через переменную
Доброго времени суток!
Имеется код, и там есть проблема. Код:
Тупняк забирает уже. Кроме тупого присвоения RM.RuleByID(d.Id).<SameVar>:=Form.R ule.<SameVar> Слишком много придется писать. Ничего более умного не приходит. Может есть выход? Последний раз редактировалось Человек_Борща; 07.06.2012 в 00:39. |
07.06.2012, 01:52 | #2 | |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
TRule -- это класс, я надеюсь?
Код:
Цитата:
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
|
07.06.2012, 02:07 | #3 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Код:
в ListItem.Data - указатель на обьект(Сам обьект?). Который может не соответствовать своей копии в общем списке. Ед. постоянная это id, который генерируется и присвайвается при добовлении в общий список а затем обьект помещается в поле Data. Может я опять грабли делаю, НО Если я делаю так: Код:
Цитата:
|
|
07.06.2012, 02:22 | #4 | |||
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
Цитата:
Код:
Код:
Код:
Цитата:
Код:
Код:
Цитата:
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
|||
07.06.2012, 02:51 | #5 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Вот так все выглядит:
Код:
TRulesManager список правил, каждое правило имеет список целей для которых оно работыет. Списоц целей содержит в себе tTarget. И список целей и список правил должны быть связаны с ListView. Для правильного определения элемента в нивидемом списке(RM) используется идентификацтор из data-поля, где лежит указатель на данные(сами данные?), которые привязаны к этому элементу видимого списка(ListView). Суть в том, чтобы юзер работал ровно с тем, что выбрал в списке, а не так, что выбрал яблоко, а продали грушу. |
07.06.2012, 03:32 | #6 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
если честно, понятней не стало, но общий смысл простой: сколько бы указателей на один и тот же объект не хранилось бы в разных местах (списках, листвьювах, листобках, whatever), все они указывают на одну и ту же область памяти.
На самом деле создать копию объекта не так-то и просто, так что я не совсем понимаю, зачем нужны какие-то дополнительные ухищрения с id. Опять же, вот простой пример. Допустим, есть некий класс TRule, экземпляры которого мы храним в L: TList (аналог вашего RM). Добавим несколько экземпляров в список (считаем, что в конструктор передаётся id): Код:
Код:
Код:
Код:
Далее, передаём r в другую форму, где у экземпляра меняется несколько полей. Ну, к примеру: Код:
Код:
Т.е. никаких копий данных не создаётся (если специально этим не заниматься).
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Передача данных между формами | SwitchOFF | C# (си шарп) | 5 | 13.05.2012 14:27 |
Передача данных между формами! | MyXa | Общие вопросы .NET | 1 | 03.02.2011 18:15 |
Передача данных между класами | Alena-b-v | Общие вопросы C/C++ | 3 | 01.09.2010 18:32 |
Передача данных между формами | katbka | Общие вопросы C/C++ | 1 | 16.05.2010 20:45 |
передача данных между процедурами | Неясыть | Общие вопросы Delphi | 15 | 18.11.2007 12:54 |