AddObject-Methode
Fügt einem Container-Objekt zur Laufzeit ein Objekt hinzu.
Object.AddObject(cName, cClass [, cOLEClass] [, aInit1, aInit2 ...])
Parameter
cName
Gibt den Namen an, mit dem auf das neue Objekt verwiesen wird.cClass
Gibt die Klasse des Objekts an, das hinzugefügt werden soll.cOLEClass
Gibt die OLE-Klasse des Objekts an, das hinzugefügt werden soll.Anmerkung Wenn Sie Laufzeitanwendungen verteilen möchten, die ActiveX-Steuerelemente hinzufügen, für die Lizenzschlüsselinformationen erforderlich sind (wie z. B. Struktur- und Listenansicht-Steuerelemente von Microsoft), können Sie die AddObject(.....cOLEClass)-Methode nicht verwenden. Stattdessen können Sie eine Unterklasse Ihres ActiveX-Steuerelements in einer VCX-Klassenbibliothek erstellen und speichern. Zur Laufzeit können Sie mit Hilfe der AddObject-Methode (oder der NewObject-Methode) die OleControl-Klasse mit Ihrem Steuerelement hinzufügen.
aInit1, aInit2
Gibt die Parameter an, die an das Init-Ereignis des neuen Objekts übergeben werden sollen.
Hinweise
Durch Aufrufen der AddObject-Methode wird das Init-Ereignis des hinzugefügten Objekts ausgelöst. Wenn einem Formularsatz ein Formular hinzugefügt wurde, tritt das Load-Ereignis vor dem Init-Ereignis ein.
**Anmerkung **Wenn Sie mit AddObject einem Container ein Objekt hinzufügen, wird die Visible-Eigenschaft des Objekts auf Falsch (.F.) gesetzt, so dass Sie die Eigenschaften des Objekts einstellen können, ohne dass mit der sich ändernden Darstellung störende visuelle Effekte auftreten.
Wenn Sie die AddObject( )-Methode verwenden, um ein ActiveX-Steuerelement einem Formular dynamisch hinzuzufügen, kann die verteilte Anwendung fehlschlagen, wenn das Steuerelement für die Lizenzierung Registrierungschlüssel erfordert, die auf dem Zielcomputer nicht verfügbar sind. Bei vielen Anbietern von ActiveX-Steuerelementen werden Registrierungsschlüssel benötigt, um Steuerelemente z. B. mit der AddObject()-Methode zur Entwurfszeit zu bearbeiten. Sie können diese Lizenzanforderung umgehen, indem Sie zuerst das ActiveX-Steuerelement als Unterklasse in einer Klassenbibliotheksdatei (VCX) erstellen und dann mit der AddObject( )-Methode eine Instanz der Unterklasse zur Laufzeit dynamisch hinzufügen. Sie sollten immer Rücksprache mit dem Anbieter des ActiveX-Steuerelements halten, das Sie mit Ihrer angepassten Anwendung vertreiben möchten, da es möglicherweise weitere abhängige Dateien gibt, die Sie mit einschließen müssen.
Beispiel
Im folgenden Beispiel wird demonstriert, wie einem Formular mit Hilfe der AddObject-Methode Objekte oder Steuerelemente hinzugefügt werden können. AddObject wird hier verwendet, um einem Formular ein Linien-Steuerelement (Line) und drei Befehlsschaltflächen hinzuzufügen.
Die Visible-Eigenschaft wird für das Linien-Steuerelement (Line) und die Befehlsschaltflächen auf Wahr (.T.) festgelegt. Standardmäßig sind Objekte und Steuerelemente jedoch nicht sichtbar, wenn sie einem Formular hinzugefügt werden.
frmMyForm = CREATEOBJECT('Form') && Create a Form
frmMyForm.Closable = .F. && Disable the Control menu box
frmMyForm.AddObject('shpLine','Line') && Add a Line control to the form
frmMyForm.AddObject('cmdCmndBtn1','cmdMyCmndBtn1') && Up Cmnd button
frmMyForm.AddObject('cmdCmndBtn2','cmdMyCmndBtn2') && Down Cmnd button
frmMyForm.AddObject('cmdCmndBtn3','cmdMyCmndBtn3') && Quit Cmnd button
frmMyForm.shpLine.Visible = .T. && Make Line control visible
frmMyForm.shpLine.Top = 20 && Specify Line control row
frmMyForm.shpLine.Left = 125 && Specify Line control column
frmMyForm.cmdCmndBtn1.Visible =.T. && Up Command button visible
frmMyForm.cmdCmndBtn2.Visible =.T. && Down" Command button visible
frmMyForm.cmdCmndBtn3.Visible =.T. && Quit Command button visible
frmMyForm.SHOW && Display the form
READ EVENTS && Start event processing
DEFINE CLASS cmdMyCmndBtn1 AS COMMANDBUTTON && Create Command button
Caption = 'Slant \<Up' && Caption on the Command button
Left = 50 && Command button column
Top = 100 && Command button row
Height = 25 && Command button height
PROCEDURE Click
ThisForm.shpLine.Visible = .F. && Hide the Line control
ThisForm.shpLine.LineSlant ='/' && Slant up
ThisForm.shpLine.Visible = .T. && Show the Line control
ENDDEFINE
DEFINE CLASS cmdMyCmndBtn2 AS CommandButton && Create Command button
Caption = 'Slant \<Down' && Caption on the Command button
Left = 200 && Command button column
Top = 100 && Command button row
Height = 25 && Command button height
PROCEDURE Click
ThisForm.shpLine.Visible = .F. && Hide the Line control
ThisForm.shpLine.LineSlant ='\' && Slant down
ThisForm.shpLine.Visible = .T. && Show the Line control
ENDDEFINE
DEFINE CLASS cmdMyCmndBtn3 AS CommandButton && Create Command button
Caption = '\<Quit' && Caption on the Command button
Cancel = .T. && Default Cancel Command button (Esc)
Left = 125 && Command button column
Top = 150 && Command button row
Height = 25 && Command button height
PROCEDURE Click
CLEAR EVENTS && Stop event processing, close Form
ENDDEFINE
Siehe auch
Init-Ereignis | Load-Ereignis | NewObject-Methode | RemoveObject-Methode | Visible-Eigenschaft
Betrifft: Spaltenobjekt | Schaltflächengruppe-Steuerelement (CommandGroup) | Container-Objekt | Custom-Objekt | Datenumgebungsobjekt (DataEnvironment) | Formularobjekt (Form) | Formularsatz-Objekt (FormSet) | Datenraster-Steuerelement (Grid) | Optionsgruppen-Steuerelement (OptionGroup) | Seitenobjekt (Page) | Seitenrahmen-Steuerelement (PageFrame) | _SCREEN-Systemvariable | Symbolleisten-Objekt