Hello, OK.
Did you try? Var aPanel:tPanel; Begin aPanel:=FuseList.ItemDesc; aPanel.caption:=Name; End; -- pnlName.SetSubComponent(True); I do not know why you are doing this. If I recall this is for streaming of owned components. Unless you are making a component these should be removed. Ciao, Mark -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of John Barrat Sent: Monday, July 02, 2007 6:33 AM To: 'Borland's Delphi Discussion List' Subject: RE: Component or Frame Arrays OK Thsnks for your help, I can now add the frames at runtime I am adding them in the formShow event at the moment just for testing. I still can't access the frame's sub components. As you can see I am setting the subcomponents true. How do I access these properties from my main form? In my main form show event I load up 8 instances of the frame: procedure TfmFuseConfig.FormShow(Sender: TObject); Var i: Integer; begin for i := 0 to 7 do AddFuseItem(i); end; procedure TfmFuseConfig.AddFuseItem(pIndex: Integer); begin FuseList := TFrmFuse.Create(Self); with FuseList do begin Parent := Self; Visible := True; Align := alTop; Name := 'FuseNo' + IntToStr(pIndex); end; end; This leaves me with 8 frames visible on my form, I assume with Names of FuseNo0 throught to FuseNo7. How do I access these frames and their sub components? I have tried populating their properties in the AddFuseItem procedure but I just get a syntax error saying undeclared identifier. E.g. procedure TfmFuseConfig.AddFuseItem(pIndex: Integer); begin FuseList := TFrmFuse.Create(Self); with FuseList do begin Parent := Self; Visible := True; Align := alTop; Name := 'FuseNo' + IntToStr(pIndex); ItemDesc.Caption := Name;// this line errors...... end; end; This is the source for the frame........................................... unit PICFuseItem; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TfrmFuse = class(TFrame) pnlFuseEntry: TPanel; cmbValue: TComboBox; pnlName: TPanel; pnlDescription: TPanel; private { Private declarations } public { Public declarations } Constructor Create(AOwner: TComponent); property ItemName: TPanel Read pnlName Write pnlName; property ItemValues: TComboBox Read cmbValue Write cmbValue; property ItemDesc: TPanel Read pnlDescription Write pnlDescription; end; implementation {$R *.dfm} Constructor TfrmFuse.Create(AOwner: TComponent); begin inherited; pnlName.SetSubComponent(True); cmbValue.SetSubComponent(True); pnlDescription.SetSubComponent(True); end; end. -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of zayin Sent: 30 June 2007 02:10 To: 'Borland's Delphi Discussion List' Subject: RE: Component or Frame Arrays Oh, And I forgot. As to the array. Sure you can make an array if you want, static if you know that bound or dynamic if not. Or a TList. That is what I would use. var frameList:TList; frameList:=TList.Create; ..loop FuseList := TFrmFuse.Create(Self); frameList.Add(FuseList); with FuseList do And in the destroy or close of the form, walk the frameList and free all the frames. Ciao, Mark _______________________________________________ Delphi mailing list -> [email protected] http://www.elists.org/mailman/listinfo/delphi _______________________________________________ Delphi mailing list -> [email protected] http://www.elists.org/mailman/listinfo/delphi _______________________________________________ Delphi mailing list -> [email protected] http://www.elists.org/mailman/listinfo/delphi

