On Tue, 04 Mar 2014 11:50:33 +0200 FreeMan <[email protected]> wrote:
> Hello, > constructor Create how is work ? In IDE not problem, but In application, > form created AOwner not nil, self created, FGrid created, but > Self.Parent is NILL ??? Self.left is 0 (not because its 10) all > Self.BoundsRect value is 0. Why? for test I added that code to in > @EditChange procedure (FGrid.Parent := Self.Parent; this line and > later) values is been correct, But in create not work properly. > Has any one any idea? A control is created like this: ExLookUp1:=TExLookUp.Create(Form1); with ExLookUp1 do begin Name:='ExLookUp1'; Parent:=Form1; Left:=10; Top:=15; ... end; The order of setting properties is arbitrary. Your component should work with any order. Keep in mind that properties might be set multiple times. > constructor TExLookUp.Create(AOwner: TComponent); > begin > inherited Create(AOwner); > Self.OnChange := @EditChange; > FGrid := TRxDBGrid.Create(Self); > FGrid.Parent := Self.Parent; > FGrid.Left := Self.Left; > FGrid.Top := Self.BoundsRect.Bottom-4; > FGrid.Width := Self.BoundsRect.Right - Self.BoundsRect.Left; Instead of fixed values you can define rules: FGrid.AnchorParallel(akLeft,0,Self); FGrid.AnchorParallel(akRight,0,Self); FGrid.AnchorParallel(akTop,4,Self); This way whenever the TExLookUp is resized the FGrid is resized as well. See http://wiki.lazarus.freepascal.org/Autosize_/_Layout Mattias -- _______________________________________________ Lazarus mailing list [email protected] http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
