Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1944to1948
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Control-Objekt in einer Klasse erzeugen

Control-Objekt in einer Klasse erzeugen
22.09.2023 22:40:15
Speedy77
Hallo ihr Profis,

ich habe nur eine Frage...

Ich habe eine eigene Klasse erzeugt, in der ich einen Frame mit Events erstelle.

Ist es möglich beim initialisieren der Klasse dem Frame dynamisch ein Label mittel frame.controls.add hinzuzufügen?

Gerne auch mit Lösungsansatz, aber wenn ich die Aussage habe, dass es funktioniert, tüftle ich auch selbst weiter....
So lernt man, wie man die Probleme angeht.

Vielen Dank

Rico

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Control-Objekt in einer Klasse erzeugen
23.09.2023 08:28:03
Oberschlumpf
Hi Rico,

da du nur sehr allgemein dein Vorhaben beschreibst, ich nicht weiß, wie dein Klassenmodul programmiert ist, kann ich dir das hier zeigen

http://www.vb-fun.de/cgi-bin/loadframe.pl?ID=vb/tutorial/tutorial027.shtml

Hier wird beschrieben wie mit Klassen programmiert werden kann. Innerhalb eines frames, werden hier auch labels + textboxen verwendet.

Ciao
Thorsten
AW: Control-Objekt in einer Klasse erzeugen
23.09.2023 09:40:36
Speedy77
Hallo Thorsten,

erst einmal danke für Deine Antwort...

Hintergrund ist die Erstellung einer Progressbar die auf einem Frame basiert.

Ich bin meinem Ziel aber schon ein ganzes Stück näher gekommen. Mein Problem war nur der Zeitpunkt für die Zuordnung der Eigenschaften....

prinzipiell sieht meine fertiges Konstrukt jetzt so aus...

Im Klassenmodul:



Option Explicit

Private Progressbar As MSForms.frame
Private myPBLab As MSForms.Label

Private Sub CreateLabel()
Set myPBLab = Progressbar.Controls.Add( _
"Forms.Label.1", _
"ShowValue", _
True)
With Progressbar
.BackColor = RGB(255, 255, 255)
.BorderColor = 0
.borderStyle = fmBorderStyleSingle
.Caption = ""
.KeepScrollBarsVisible = fmScrollBarsNone
.ScrollBars = fmScrollBarsNone
.SpecialEffect = fmSpecialEffectFlat
End With
With myPBLab
.borderStyle = fmBorderStyleNone
.Caption = 100
.Top = 2
.Left = 2
.Height = Progressbar.Height - 8
.Width = Progressbar.Width - 9
.BackColor = RGB(50, 50, 255)
.Font.Name = "Candara"
.Font.Size = .Height - (Int(.Height / 10) + 2)
.ForeColor = RGB(255, 255, 10)
.SpecialEffect = fmSpecialEffectFlat
.textAlign = fmTextAlignLeft
.WordWrap = False
End With
End Sub

Public Property Set ProgressRahmen(ByRef new_Frame As MSForms.frame)
Set Progressbar = new_Frame
CreateLabel
End Property

Public Property Get PB_Top() As Integer
Top = Progressbar.Top
End Property

Public Property Let PB_Top(ByVal new_Top As Integer)
Progressbar.Top = new_Top
End Property


In der Userform bei der Initialisierung:



Option Explicit

Public my_ProgBar As cls_Progress

Private Sub UserForm_Initialize()
Set my_ProgBar = New cls_Progress
Set my_ProgBar.ProgressRahmen = Frame1
End Sub



und der Aufruf im Programm erfolgt dannn ganz normal beim laden der Userform...




Anzeige
AW: Control-Objekt in einer Klasse erzeugen
23.09.2023 10:00:49
snb
Verzichte auf real time controls erstellen in VBA; benütze den Design Modus.
Ein Progress Bar führt nur zur langsamere Code-performance.
Behebe die mangelnde 'Geschwindigkeit' in dem schon erstellte Code.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige