Hallo Rotzer.
Zitat:
____________________________________________________________
> Poste mal ein konkretes Beispiel ! (Bitte nur ein Beispiel und bitte konkret !)
____________________________________________________________
Übersetzung:
"Ein Beispiel" bedeutet: nur ein ! Objekt mit einer ! Eigenschaft und einem ! Wert.
"konkret" bedeutet: Objekt-Name, Objekt-Type, Name der Eigenschaft, Wert für diese Eigenschaft usw. ! Z. B. Label1.ForeColor = vbRed
Ich weiß, es ist nicht einfach, das auszudrücken was man denkt. *verständnisvoll-kuck*
Auch sind solche Aufforderungen von mir dazu da, zu prüfen ob derjenige, der Hilfe braucht, auch Hilfe will !
Auf gut deutsch: ob er ernsthaft Hilfe sucht, um weiter programmieren zu können, oder ob er andere seine Arbeit machen lassen will !
Bei dir hab ich den Eindruck, dass es dir ernst ist !
Deshalb hier ein allgemeiner Tipp: Es hilft anderen (und dir offensichtlich auch), wenn du dein Posting und insbesondere den Code formatierst. Das kannst du zum einen mit dem dafür vorgesehenen Button; aber viel wichtiger ist, dass du deinen Code einrückst und Zeilenabstände benutzt.
Wie das geht guckst du hier:
Option Explicit
' ===================================================================
'
' -----------------------------------------------
' Control + Eigenschaft per Text ansprechen (GES)
' -----------------------------------------------
'
' Die Zuweisung geschieht hier ausschließlich per Text !
' Das Control wird über die Controls-Collection angesprochen,
' die Eigenschaften werden mit Hilfe von CallByName gesetzt.
'
' Autor:
' Guido Eisenbeis Software (GES), guidoeisenbeis@web.de, 2006-02-28
' ===================================================================
' ----------------------------------------------------------------- v
'
' Werte für Eigenschaften von Controls zuweisen
Private Sub Command2_Click()
On Error Resume Next
Call CallByName(Form1.Controls(txtCtrlName.Text), _
txtProperty.Text, VbLet, txtValue.Text)
On Error GoTo 0
End Sub
'
' ----------------------------------------------------------------- ^
' Nur für Forum-Posting (Demo), der eigentliche Code steht oben.
Private Sub Form_Load()
' Controls für Demo:
'
' Label1 ... 5, Check1, Command1, Command2, Shape1
' 3x TextBoxes: "txtCtrlName", "txtProperty" und "txtValue"
' Contols positionieren für Posting in Forum
Form1.Move Me.Left, Me.Top, 6375, 5280
Label1.Move 1080, 3120, 975, 255
Label2.Move 720, 1680, 1455, 255
Label3.Move 2400, 1680, 1455, 255
Label4.Move 4080, 1680, 1455, 255
Label5.Move 720, 240, 4815, 1255
txtCtrlName.Move 720, 2040, 1455, 285
txtProperty.Move 2400, 2040, 1455, 285
txtValue.Move 4080, 2040, 1455, 285
Check1.Move 2520, 3120, 1095, 255
Command1.Move 4080, 3000, 1215, 495
Command2.Move 2400, 4080, 1455, 495
Shape1.Move 720, 2760, 4815, 975
' Beschreibungstext zuweisen
Label5.Caption = "Für die 3 Controls im unteren Teil der Form können " & _
"per Text verschiedene Eigenschaften gesetzt werden." & _
vbNewLine & vbNewLine & "Zum Beispiel:" & vbNewLine & _
"ForeColor, BackColor, Left, Top, Width, Height, " & _
"Enabled, Value usw."
Form1.Caption = "Control + Eigenschaft per Text ansprechen (GES)"
txtCtrlName.Text = "Label1"
txtProperty.Text = "ForeColor"
txtValue.Text = "255"
Label2.Caption = "ControlName"
Label3.Caption = "Eigenschaft"
Label4.Caption = "Wert"
Command2.Caption = "Eigenschaft setzen"
End Sub Den obigen Code kopierst du in einem neuen Projekt in Form1, setzt die beschriebenen Controls drauf (egal wohin) und gibst lediglich den 3 Textboxes die richtigen Namen. Wo du die Controls hinsetzt, ist egal. Du brauchst sie nicht anzuordnen, das macht der Code.
Guido. |