| |
Visual-Basic EinsteigerLabel auf PictureBox kopieren | | | Autor: Landrover | Datum: 27.08.20 22:35 |
| Ich habe, oder VBA hat ein Problem.
Vielleicht kann mir hier jemand weiterhelfen. Mit den üblichen VBA-Unterlagen habe ich keinen Erfolg gehabt.
Software: VBA: Retail 6.0.8169 Version 8176
Meine Frage:
In der PictureBox (PicBild) habe ich ein Label (LblUhrzeit) eingefügt.
Wie kann ich von diesem Label eine Kopie erstellen und dann unter einem
neuen Namen (LblUhrzeit1) wieder in die PictureBox (PicBild) einfügen.
Die Labels müssen Eigenständig sein und dürfen keinen Index haben.
Der Projekt Aufbau:
Formular Form1
Darin enthalten sind:
Befehlsschaltfläche CommandButton (Command1)
PictureBox mit Name (PicContainer)
Im (PicContainer) ist eine weitere PictureBox mit Namen (PicBild) enthalten.
In die PictureBox (PicBild) habe ich ein Label (LblUhrzeit) eingefügt.
Option Explicit
Dim NeuLbl As Label 'Variable für
' Label-Erstellung
Dim Z_Time As Integer 'Zähler für die
' Uhrzeit-Labels
Dim Z_Date As Integer 'Zähler für die Datum-Labels
Dim LbTimeX As Long 'Label-Uhrzeit-X-Position
Dim LbTimeY As Long 'Label-Uhrzeit-Y-Position
Dim LbTimeB As Long 'Label-Uhrzeit-Breite
Dim LbTimeH As Long 'Label-Uhrzeit-Höhe
Dim LbDateX As Long 'Label-Datum-X-Position
Dim LbDateY As Long 'Label-Datum-Y-Position
Dim LbDateB As Long 'Label-Datum-Breite
Dim LbDateH As Long 'Label-Datum-Höhe
Private Sub Command1_Click() 'Test-Programm zum anlegen von
' Label zur Laufzeit.
Z_Time = Z_Time + 1 'Zähler bei jedem Aufruf +1
'Das erstellen von Labels auf dem Formular klappt.
'Das Neue Labelbekommt den
' Namen "Lblx"
Set NeuLbl = Form1.Controls.Add("VB.Label", "Lbl" & Z_Time)
NeuLbl.Move LbTimeX, LbTimeY, LbTimeB, LbTimeH 'Label auf aktuelle
' Position setzen
NeuLbl.BackColor = &H8000000F 'Hintergrundfarbe
NeuLbl.BorderStyle = 0 'Border-Styl
NeuLbl.Font = "Schriftart: Arial, 8 pt, fett" 'Schrift-Styl
NeuLbl.Caption = Time 'Aktuelle Uhrzeit eintragen
NeuLbl.Visible = True 'Label sichtbar schalten
LbTimeY = LbTimeY + 300 'Label-Y-Position
' nachstellen.
'Das Verschieben des Labels auf der PictureBox und das anzeigen der Uhrzeit
' klappt.
LblUhrzeit.Move 500, LbTimeY, LbTimeB, LbTimeH 'Label auf neue Position
' setzen und
LblUhrzeit.Caption = Time 'Aktuelle Uhrzeit eintragen.
End Sub
Private Sub Form_Load()
' Uhrzeit-Start-Koordinaten festlegen
LbTimeX = 50 'Label-Uhrzeit
' X-Start-Position
LbTimeY = 100 'Label-Uhrzeit
' Y-Start-Position
LbTimeB = 1200 'Label-Uhrzeit Breite
LbTimeH = 204 'Label-Uhrzeit Höhe
End Sub | |
Re: Label auf PictureBox kopieren | | | Autor: Souffleurlos | Datum: 28.08.20 13:58 |
| Hallo Landrover,
UserForm1.Controls.Add("VB.Label", "Lbl" & Z_Time)
nicht Form1.Controls.Add
In VBA heißt dieses Klasse UserForm
Ansonsten verstehe ich kaum, was Du eigentlich machen willst. | |
Re: Label auf PictureBox kopieren | | | Autor: Landrover | Datum: 28.08.20 16:55 |
| Hallo Souffleurlos
Danke für deine Antwort.
Dein Vorschlag klappt leider nicht.
Wenn ich den Befehl einfüge bekomme ich folgende Fehlermeldung.
"Fehler beim Kompilieren: Variable nicht definiert"
Ist aber auch logisch, im Projekt ist kein Formular mit dem Namen UserForm1 vorhanden
und dann nimmt VBA an, das es sich um eine Variable handelt.
Hier liegt auch nicht mein Problem.
Auf meinem Formular "Form1" ist eine PictureBox als "PicContainer" abgelegt.
In dem Container ist eine weitere PictureBox "PicBild" abgelegt (wegen Scrollfunktion).
In der PictureBox "PicBild" benötige ich mehrere Labels für ein Zeit-Diagramm.
Die Labels können durch Kopieren eines schon vorhandene Labels in der PicBox "PicBild" erzeugt werden,
oder sie werden auf der PictureBox "PicBild" neu angelegt.
Beide Varianten sind möglich.
Vielleicht hat jemand eine Lösung.
Mit Sonnigen Grüßen | |
Re: Label auf PictureBox kopieren | | | Autor: Souffleurlos | Datum: 28.08.20 18:18 |
| Hallo,
nochmal: In VBA heißt die Form standaardmäßig nicht Form, sondern UserForm. In VBA gibt es keine PictureBox. | |
Re: Label auf PictureBox kopieren | | | Autor: Landrover | Datum: 29.08.20 00:25 |
| Hallo Souffleurlos
Ich glaube wir haben etwas aneinander Vorbei-Gedacht.
Die Bezeichnung VBA habe ich aus dem Menüfeld "Info zu Microsoft Visual Basic..."
abgeleitet da ich hier die Versionsnummer angegeben habe.
Software: VBA: Retail 6.0.8169 Version 8176
Es handelt sich hierbei aber um Visual-Basic 6.0
Und hier gibt es dann schon Form und PictureBox.
Mit fast Vollmond-Grüßen | |
Re: Label auf PictureBox kopieren | | | Autor: Souffleurlos | Datum: 29.08.20 19:20 |
| Hallo Landrover,
wenn das so ist, dann verstehe ich Deine Frage erst recht nicht. Forms hat doch eine wunderbare Eigenschaft namens Form1.Controls. Du zeigst in deinem Code auf, dass Du diese korrekt bedienst.
Du gibst ja schon den zur laufzeit hinzugefügten Labels den Namen etc. | |
Re: Label auf PictureBox kopieren | | | Autor: Landrover | Datum: 29.08.20 19:35 |
| Hallo Souffleurlos
Danke für deine Antwort.
Die Labels kann ich derzeit nur auf der Form anlegen und nicht in der PictureBox
wo ich sie benötigen würde.
Ein verschieben der Labels von der Form in die PictureBox würde mein Problem auch lösen.
Mit Verregneten Grüßen | |
Re: Label auf PictureBox kopieren | | | Autor: Rippler | Datum: 29.08.20 22:25 |
| Dim NeuLbl As Label 'Variable für Label-Erstellung
Dim Z_Time As Integer 'Zähler für die Uhrzeit-Labels
Dim Z_Date As Integer 'Zähler für die Datum-Labels
Dim LbTimeX As Long 'Label-Uhrzeit-X-Position
Dim LbTimeY As Long 'Label-Uhrzeit-Y-Position
Dim LbTimeB As Long 'Label-Uhrzeit-Breite
Dim LbTimeH As Long 'Label-Uhrzeit-Höhe
Private Sub Command1_Click()
'Zähler bei jedem Aufruf +1
Z_Time = Z_Time + 1
'Neues Label
Set NeuLbl = Form1.Controls.Add("VB.Label", "Lbl" & Z_Time)
With NeuLbl
'Hintergrundfarbe, Border-Styl, Schrift-Styl
.BackColor = &H8000000F
.BorderStyle = 1
.Font = "Schriftart: Arial, 8 pt, fett"
'Label Beschriftung
.Caption = Time
'Label in Container
Set .Container = Picture1
'Label auf aktuelle Position setzen
.Move LbTimeX, LbTimeY, LbTimeB, LbTimeH
'Label sichtbar schalten
.Visible = True
End With
Set NeuLbl = Nothing
'Label-Y-Position nachstellen.
LbTimeY = LbTimeY + 300
End Sub
Private Sub Form_Load()
'LabelUhrzeit XY Start-Koordinaten festlegen
LbTimeX = 50
LbTimeY = 100
'Label-Uhrzeit Breite/Höhe festlegen
LbTimeB = 1200
LbTimeH = 285
End Sub | |
Re: Label auf PictureBox kopieren | | | Autor: Landrover | Datum: 31.08.20 10:59 |
| Hallo Rippler
Einen ganz ganz großen Dank von mir.
Dein Tipp funktioniert super.
Ich währe nie darauf gekommen das man mit einem zweiten Set das Label
auf die PictureBox verschieben kann.
Damit hat sich mein Problem erledigt !!!
Und nochmals vielen Dank an alle, die hier mit Rat und Tat
zur Seite stehen wenn etwas nicht klappt.
Mit Halbschatten Grüßen
von Landrover | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevISDN 1.0
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats sevGraph (VB/VBA)
Grafische Auswertungen
Präsentieren Sie Ihre Daten mit wenig Aufwand in grafischer Form. sevGraph unterstützt hierbei Balken-, Linien- und Stapel-Diagramme (Stacked Bars), sowie 2D- und 3D-Tortendiagramme und arbeitet vollständig datenbankunabhängig! Weitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|