Strings als Code interpretieren

schachmat

Erfahrenes Mitglied
Hallo,

gibt es bei VB8 eine Möglichkeit, dass der Compiler Strings als Programmcode interpretiert. Hier ein paar Beispiele, wie das etwa ausschauen sollte:

Code:
Dim blub As String = "cmdEnde"
Me.[blub].Enabled = false
Me.["lblNachricht"].Text = "Hallo Welt!"
Me.["lstLotto"].["Items(3)"].Text = "Gewonnen!"
 
Nein, soweit ich weiss gibt es die Möglichkeit nicht, aber du kannst mit dem ScriptControl während der Laufzeit (VB Script-) Code interpretieren.

cdeman
 
Ok, das hilft schonmal ein Wenig weiter. Hab ich alles schön in mein Code rein, aber er findet immer den entsprechenden Namespace nicht... (gehört das jetzt schon ins .NET-Forum:suspekt:)

Hab auch schon ein bisschen nach den darin verwendeten Namespaces CodeDom.compiler und so gegooglet und experimentiert. Hat aber nichts gebracht. Ich brächte das um eine Liste, die ungefähr wie eine .ini aufgebaut ist durchzulaufen und die Anweisungen dann auszuführen. Etwa so sieht das aus:

Wert1 - "frmHaupt.Text = "Blablub""
Wert2 - "frmNeu.Text = "Neuen Eintrag anlegen""
...

hab auch schon mit "My.Forms.frmHaupt.Text" und "Projektname.Forms.frmHaupt.Text" versucht, aber er findet das von der .dll nicht...

Die Liste kann ich noch abändern, falls es eine andere Möglichkeit gibt.
 
Speicherst du bei jedem Control nur die Text-Eigenschaft? Dann könntest du folgendes machen:
In deiner Datei speicherst du jeweils den Namen eines Controls und den zugehörigen Wert, der in die Texteigenschaft kommen soll.
Bei Programmstart suchst du dann in der Controls-Auflistung der Form ("Me.Controls") nach dem entsprechenden Control (kannst du mit der Name-Eigenschaft der Controls ja überprüfen). Anschließend setzt du dann die Texteigenschaft des Controls.
Hier mal kleines Beispiel:
Code:
        Dim objControl As Control
        For Each objControl In Me.Controls
            If objControl.Name = "Das_was_ich_suche" Then objControl.Text = "toller Text"
        Next
 
Sowas ähnliches hatte ich auch schon als Ansatz, bis ich gemerkt hab, dass die ColumnHeader des DataGridView/ListView keine Controls sind....;)
 
Zurück