Конференция "Компоненты" » Свойство-компонент. Строковое значение = ''
 
  • DevilDevil © (17.06.08 20:20) [0]
    В 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 у визуальных компонентов.
  • DevilDevil © (19.06.08 21:37) [4]
    это было нелегко, но я это сделал.
    Всем помогающим спасибо, особенно 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 )
 
Конференция "Компоненты" » Свойство-компонент. Строковое значение = ''
Есть новые Нет новых   [134464   +62][b:0][p:0.001]