ExLookUp1:=TExLookUp.Create(Form1); This is for manual creating, I'm talk about, I'm designing in IDE, 1-2 TExLookUp on form, and run my application, TExLookUp is class(TCustomEditButton) so Edit and button is shown on where I put on form, in designtime IDE.

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.Heigh + 10;
  FGrid.Width := 150;
  FGrid.visible := False;
...
set FGrid.visible := False; FGrid not visible, same where in component, example in TExLookUp.OnClick event writen this code
"FGrid.visible := True;" and while application running, user click button,
FGrid not visible, Because in create "FGrid.Parent := Self.Parent;" and FGrid=nil, has not parent and FGrid not showing.
FGrid.Left=0 and
FGrid.Top=10

similar problem, when I porting component, Main component has maybe more 10 class create in Main created procedure.Huge class not created and other class has need some property from huge class, but huge class not created and accesses volation error generated, I fixed that, I added "if assigned()then" this is runaway from problem just, not mean fixed

another problem same on porting:
(not clearly analysis) another create problem:
  TxItem = class(TCollectionItem)
....
constructor Tx.Create(Collection: TCollection);
begin
  inherited Create(Collection);
.....
FName := 'XItem' + IntToStr(Index); --> FName is Item's name, TCollection.Index is always 0(zero). Collection has to added so it has a index number from TCollectionItem, but not known.

The order of setting properties is arbitrary. Your component should work
with any order.

Sorry, but I'm scared this answer, because nothing my under control


04-03-2014 12:10 tarihinde, Mattias Gaertner yazdı:
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;
Mattias



--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to