-
Код в TFieldControlItem.AssignTo неверен, наоборот надо. Начнем с этого. И поясните, о каких таких предках-потомках идет речь?
-
Не понял. как наоборот
-
Поясню для чего все это надо
Создается форма (назовем ее frmList) на которой DBGrid, DataSet, этот компонент(назовем его FieldControl) и т.д.
В компоненте будут хранится настройки столбцов грида. В этом модуле процедурой создаются колонки в гриде согласно настройкам из FieldControl
В FieldControl хранятся описания колонок которые присутствуют в гриде на всех потомках данной формы.
От этой формы наследуются "потомки" со своей спецификой. Соответственно в FieldControl на формах потомках добавляются свои записи о столбцах
-
> Не понял. как наоборот
Извините не разобрался. Сейчас все понял. Выкладывать исправленное пока не буду.
-
> baghin © (12.11.13 15:31) [21]
В Assign:
поле := Source.поле; // Source - источник
В AssignTo:
Dest.поле := поле; // Dest - приемник
-
Это я уже поправил. Еще раз спасибо
-
Без AssignTo работает прекрасно. Проверено на D6, D7, XE2.
И добавляются в наследнике и удаляются, для надёжности напишите в AssignTo какой нибудь ShowMessage, что бы убедиться что он никогда не показывется
-
> DimaBr © (13.11.13 17:55) [26]
> Без AssignTo работает прекрасно.
Естественно - ведь в этом случае AssignTo в коде компонента нигде не вызывается (о чем Вы сами и написали).
Но как только будет вызван из любого другого места...
Error: Can not assign TMyClass to TMyClass.
И сидит изумленный программист, чешет репу - как же это так?
-
> DimaBr © (13.11.13 17:55) [26]
А если вместо Assign перекрыть AssignTo, то тоже будет прекрасно работать. Причем без всяких "Can not...".
-
Удалено модератором
-
Удалено модератором