I want to create a component composed of a TLayout that contains a TRectangle.
The TRectangle is created inside the component’s constructor and has the TLayout as its parent.
The problem: when putting this component on a form, after pressing ALT-F12 to enter the source editor for the form, then pressing it again to leave it, an extra child component (TRectangle) for the parent is created. (the TRectangle shouldn’t even appear in the form text editor, which I think causes the problem)
Code for the component:
unit Problem;
interface
uses
System.SysUtils, System.Classes, FMX.Types, FMX.Layouts, FMX.Objects;
type
TProblem = class(TLayout)
private
rect: TRectangle;
public
constructor Create(AOwner: TComponent); override;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents(‘FMX Problem Component’, [TProblem]);
end;
{ TProblem }
constructor TProblem.Create(AOwner: TComponent);
begin
inherited;
rect := TRectangle.Create(nil);
rect.Parent := Self;
end;
end.
I’m sure the answer is trivial, but would appreciate it nevertheless.