Мастера DELPHI, Delphi programming community Рейтинг@Mail.ru Титульная страница Поиск, карта сайта Написать письмо 
| Новости |
Новости сайта
Поиск |
Поиск по лучшим сайтам о Delphi
FAQ |
Огромная база часто задаваемых вопросов и, конечно же, ответы к ним ;)
Статьи |
Подборка статей на самые разные темы. Все о DELPHI
Книги |
Новинки книжного рынка
Новости VCL
Обзор свежих компонент со всего мира, по-русски!
|
| Форумы
Здесь вы можете задать свой вопрос и наверняка получите ответ
| ЧАТ |
Место для общения :)
Орешник |
Коллекция курьезных вопросов из форумов
KOL и MCK |
KOL и MCK - Компактные программы на Delphi
Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / rsdn.org

 
Чтобы не потерять эту дискуссию, сделайте закладку « предыдущая ветвь | форум | следующая ветвь »
Страницы: 1 2

Компонент содержащий коллекцию не сохраняем ее [D7, WinXP]


Юрий Зотов ©   (12.11.13 15:19[20]

Код в TFieldControlItem.AssignTo неверен, наоборот надо. Начнем с этого. И поясните, о каких таких предках-потомках идет речь?


baghin ©   (12.11.13 15:31[21]

Не понял. как наоборот


baghin ©   (12.11.13 15:37[22]

Поясню для чего все это надо
Создается форма (назовем ее frmList) на которой DBGrid, DataSet, этот компонент(назовем его FieldControl) и т.д.
В компоненте будут хранится настройки столбцов грида. В этом модуле процедурой создаются колонки в гриде согласно настройкам из FieldControl
В FieldControl хранятся описания колонок которые присутствуют в гриде на всех потомках данной формы.

От этой формы наследуются "потомки" со своей спецификой. Соответственно в FieldControl на формах потомках добавляются свои записи о столбцах


baghin ©   (12.11.13 15:39[23]


> Не понял. как наоборот


Извините не разобрался. Сейчас все понял. Выкладывать исправленное пока не буду.


Юрий Зотов ©   (12.11.13 16:08[24]

> baghin ©   (12.11.13 15:31) [21]

В Assign:
поле := Source.поле; // Source - источник

В AssignTo:
Dest.поле := поле; // Dest - приемник


baghin ©   (12.11.13 16:14[25]

Это я уже поправил. Еще раз спасибо


DimaBr ©   (13.11.13 17:55[26]

Без AssignTo работает прекрасно. Проверено на D6, D7, XE2.
И добавляются в наследнике и удаляются, для надёжности напишите в AssignTo какой нибудь ShowMessage, что бы убедиться что он никогда не показывется


Юрий Зотов ©   (13.11.13 22:16[27]

> DimaBr ©   (13.11.13 17:55) [26]
> Без AssignTo работает прекрасно.


Естественно - ведь в этом случае AssignTo в коде компонента нигде не вызывается (о чем Вы сами и написали).

Но как только будет вызван из любого другого места...
Error: Can not assign TMyClass to TMyClass.

И сидит изумленный программист, чешет репу - как же это так?


Юрий Зотов ©   (13.11.13 22:38[28]

> DimaBr ©   (13.11.13 17:55) [26]

А если вместо Assign перекрыть AssignTo, то тоже будет прекрасно работать. Причем без всяких "Can not...".


имя   (20.10.15 19:54[29]

Удалено модератором


имя   (20.10.15 20:54[30]

Удалено модератором


Страницы: 1 2 версия для печати

Написать ответ

Ваше имя (регистрация  E-mail 







Разрешается использование тегов форматирования текста:
<b>жирный</b> <i>наклонный</i> <u>подчеркнутый</u>,
а для выделения текста программ, используйте <code> ... </code>
и не забывайте закрывать теги! </b></i></u></code> :)


Наверх

  Рейтинг@Mail.ru     Титульная страница Поиск, карта сайта Написать письмо