![]() |
Tipp 0206
|
Controls dynamisch laden
|
 |
|
Autor/Einsender: Datum: |
|
Detlev Schubert 16.03.2002 |
|
Entwicklungsumgebung: |
|
VB 5 |
|
|
Es gibt Situationen, in denen ein Programm erst zur Laufzeit so richtig
gestaltet werden kann, oder es ist sogar zweckmäßiger, dies erst zur Laufzeit zu
machen. So taucht auch öfters die Frage auf, wie man denn so etwas bewerkstelligen kann.
|
Es gibt unterschiedliche Möglichkeiten, aber die einfachste Lösung ist das Anlegen eines
Control-Arrays, wie es dieser Tipp anschaulich demonstriert.
|
|
|
Option Explicit
Private Sub Command1_Click()
Dim i As Integer, j As Integer
Dim AbstandX As Integer, AbstandY As Integer
Dim CIndex As Integer, LIndex As Integer
AbstandX = Check1(1).Left - Check1(0).Left
AbstandY = Check1(2).Top - Check1(0).Top
CIndex = 0
LIndex = 0
For i = 0 To 4
If LIndex > 1 Then
Load Label1(LIndex)
End If
Label1(LIndex).Top = Label1(0).Top + AbstandY * i
Label1(LIndex).Left = Label1(0).Left
Label1(LIndex).Visible = True
Label1(LIndex).Caption = CStr(i)
LIndex = LIndex + 1
For j = 0 To 9
If CIndex > 2 Then
Load Check1(CIndex)
End If
If i = 0 Then
If LIndex > 1 Then
Load Label1(LIndex)
End If
Label1(LIndex).Top = Label1(1).Top
Label1(LIndex).Left = Label1(1).Left + AbstandX * j
Label1(LIndex).Visible = True
Label1(LIndex).Caption = CStr(j)
LIndex = LIndex + 1
End If
Check1(CIndex).Top = Check1(0).Top + AbstandY * i
Check1(CIndex).Left = Check1(0).Left + AbstandX * j
Check1(CIndex).Visible = True
CIndex = CIndex + 1
Next j
Next i
End Sub
Private Sub Check1_Click(Index As Integer)
Text1.Text = "Check1 (Index " + Format(Index) + ") "
If Check1(Index).Value = 1 Then
Text1.Text = Text1.Text + " AN"
Else
Text1.Text = Text1.Text + " AUS"
End If
End Sub
|
|
|
|
|
Windows-Version |
95 |
 |
|
98/SE |
 |
|
ME |
 |
|
NT |
 |
|
2000 |
 |
|
XP |
 |
|
Vista |
 |
|
Win
7 |
 |
|
|
VB-Version |
VBA 5 |
 |
|
VBA 6 |
 |
|
VB 4/16 |
 |
|
VB 4/32 |
 |
|
VB 5 |
 |
|
VB 6 |
 |
|
|
|
Download (2,6 kB)
|
Downloads bisher: [ 1678 ]
|
|
|