Gleich zu Beginn die entmutigende Mitteilung ...
Nein es ist nicht möglich, in VB, zur Laufzeit einfach aus dem Nichts heraus neue Objekte
zu erzeugen.
Warum dann aber dieser Tipp, weil es schon irgendwo geht, man braucht dazu aber ein
Ursprungsobjekt (Vaterobjekt, denn Mutter/Kindformen gibt's ja schon).
Möglich ist dies über den Indexeintrag.
Fügen Sie Ihrer Form ZBsp. einen CommandButton hinzu und vergeben diesem in der Index
Eigenschaft die 0.
In den Events erscheint nun auch der Eintrag (Index As Integer).
Außerdem setzen Sie die Visible Eigenschaft auf False.
Für die eigentliche Prozedur können Sie nun einen weiteren CommandButton einfügen oder
der Einfachheit ZBsp. das Doppelklick Ereignis der Form nutzen, wie in nachfolgendem
Beispiel.
Private Sub Form_DblClick()
Static iAnz As Integer
Static iReihe As Integer 'Beispiel nur für
zwanzig Button ausgelegt
If iAnz > 20 Then Exit Sub
If iAnz > 0 Then
Load Command1(iAnz)
Command1(iAnz).Caption = iAnz + 1
'zweite Reihe
If iReihe >= 10 Then
Command1(iAnz).Top = Command1(iAnz).Top +
350
Command1(iAnz).Left = Command1(iAnz -
10).Left
'erste Reihe
Else
Command1(iAnz).Left = Command1(iAnz -
1).Left + 410
End If
End If
If Command1(iAnz).Visible = False Then Command1(iAnz).Visible = True
Command1(iAnz).SetFocus
iAnz = iAnz + 1
iReihe = iReihe + 1
End Sub
In unserem Beispiel wird beim ersten Doppelklick auf die Form der Originalbutton
eingeblendet und bei den darauffolgenden ein Abbild dessen, mit einer +1 nach oben
gezählten Index Eigenschaft. So sind diese Button auch seperat ansprechbar und erhalten
hier als Caption immer die fortlaufende Nummer zugewiesen. Im Beispiel werden so zwei
Reihen a 10 Button erzeugt. |