-
Есть некий MyPersistent:TPersistent Я включаю его в MyComponent:TComponent;
MyComponent = class(TComponent) private FMyPersistent:TMyPersistent; protected public published property MyPersistent:TMyPersistentread FMyPersistent; end;
constructor MyComponent.Create; begin inherited Create(AOwner); FScene:=TScene.Create; end;
Беда заключается в том что когда я прописываю параметры в обжектинспекторе для MyPersistent они сохраняются в дезайнтайме, однако при запуске рантаймя все параметры умолчальные. Что это может быть?
-
Для начала приведите РЕАЛЬНЫЙ код. Потому что по тому коду, который Вы привели, ничего сказать нельзя. Он даже не скомпилируется.
-
Ок. Вот код:
unit SceneControl;
interface
uses
...
type
TSceneControl = class(TComponent)
private
FControl:TWinControl;
FCamera:TCamera;
FScene:TScene;
FTextureList:TTextureList;
FControlPointList:TControlPointList;
procedure SetControl(AControl:TWinControl);
procedure SceneOnMessage(Sender:TObject; Message:TMessage);
public
constructor Create(AOwner:TComponent); override;
destructor Destroy; override;
property ControlPointList:TControlPointList read FControlPointList write FControlPointList;
published
property Control:TWinControl read FControl write SetControl;
property TextureList:TTextureList read FTextureList;
property Camera:TCamera read FCamera;
property Scene:TScene read FScene;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('Swamp', [TSceneControl]);
end;
constructor TSceneControl.Create;
begin
inherited Create(AOwner);
FControl:=nil;
FScene:=TScene.Create;
FTextureList:=TTextureList.Create;
FCamera:=TCamera.Create;
FControlPointList:=TControlPointList.Create;
end;
destructor TSceneControl.Destroy;
begin
if FControlPointList<>nil then FControlPointList.Free;
if FCamera<>nil then FCamera.Free;
if FTextureList<>nil then FTextureList.Free;
if FScene<>nil then FScene.Free;
inherited Destroy;
end;
procedure TSceneControl.SetControl;
begin
....
end;
procedure TSceneControl.SceneOnMessage;
begin
.....
end;
end.
-
Пардон. Вопрос снят. stored надо было использовать.
-
Нужно не stored, а write метод.
-
ну эээ... не знаю, но проблема исчезла. :)
-
Для того чтобы система записывала свойства в ресурс нужно иметь Write метод это свойства, после этого, при наличии диррективы Stored или Default проверяется Stored = true или DefaultValue = Value и производится ( не производится) запись в DFM
|