-
В Delphi есть одна замечательная штука - одному компоненту в качестве свойства можно указать другой компонент. Если оба компонента находятся на одной форме - проблем нет. Проблемы начинаются если компоненты находятся в разных модулях - вызывается Exception или строковый идентификатор тупо стирается (хотя в *.dfm свойство обозначено "Source = GameProcess.ScoresFont", например).
Кто-либо сталкивался с такой проблемой ? Помогите, пожалуйста, как исправить ? -
Поросенок Винни-Пух © (17.06.08 22:00) [1]лечится либо переприсвоением на рантайме либо открытием в дизайнере обеих форм.
причем та, на которой находится компонент указанный в свойстве открывается первой. -
DimaBr © (18.06.08 08:56) [2]Установка свойства такого типа нужно не просто присваисанием, а по методу подписки на нотификацию
procedure SetMyComp(Value: TMyComp)
begin
if fMyComp = Value then Exit;
if Assigned(fMyComp) then fMyComp.RemoveFreeNotification(self);
fMyComp := Value;
if Assigned(fMyComp) then fMyComp.FreeNotification(self);
end; -
Юрий Зотов © (18.06.08 21:36) [3]И еще надо перекрыть метод Notification.
Посмотрите в исходниках VCL, как реализовано свойство DataSource у компонентов отбражения данных. Или свойство PopupMenu у визуальных компонентов. -
это было нелегко, но я это сделал.
Всем помогающим спасибо, особенно DimеBr. -
DimaBr © (20.06.08 09:17) [5]Ну и как поживает связка TSpriteLib.Texture - TFileTexture ?
-
DevilDevil (21.06.08 15:06) [6]> DimaBr © (20.06.08 09:17) [5]
в ICQ )