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?:
Show quoted text 24 lines
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