Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p><code>TMyClass3</code> needs to derive from <code>TPersistent</code> in order to be streamable in a DFM. It should also optionally override the virtual <code>Assign()</code> method, which <code>SetMyProperty()</code> would then be able to call.</p> <p>Try this:</p> <pre><code>unit MyComponentTest3; interface uses Windows, ExtCtrls, Classes, Controls; type TMyClass3 = class(TPersistent) private FMyString: string; FMyNumber: double; public procedure Assign(Source: TPersistent); override; published property myString: string read FMyString write FMyString; property myNumber: double read FMyNumber write FMyNumber; end; TMyComponentTest3 = class(TCustomPanel) private FMyProperty: TMyClass3; procedure SetMyProperty(Value: TMyClass3); public constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure SetMyPropertyPublic(AmyString: string; AmyNumber: double); published property MyProperty: TMyClass3 read FMyProperty write SetMyProperty; end; procedure Register; implementation procedure Register; begin RegisterComponents('MyComponents', [TMyComponentTest3]); end; { TMyClass3 } procedure TMyClass3.Assign(Source: TPersistent); begin if Source is TMyClass3 then begin with TMyClass3(Source) do begin Self.FMyString := myString; Self.FMyNumber := myNumber; end; end else inherited; end; { TMyComponentTest3 } constructor TMyComponentTest3.Create(AOwner: TComponent); begin inherited; FMyProperty := TMyClass3.Create; end; destructor TMyComponentTest3.Destroy; begin FMyProperty.Free; inherited; end; procedure TMyComponentTest3.SetMyProperty(Value: TMyClass3); begin FMyProperty.Assign(Value); end; procedure TMyComponentTest3.SetMyPropertyPublic(AmyString: string; AmyNumber: double); begin with MyProperty do begin myString := AmyString; myNumber := AmyNumber; end; end; end. </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload