aus einem String eine Variable erzeugen?

Linz Erich

Grünschnabel
Hallo Leute,

Ich würde gerne den Text von ca. 15 Labels zur Laufzeit ändern. Je nach dem was in einer comboBox steht, soll sich der Inhalt des Labels ändern. Meine Labels sind durchnummeriert von label_1 bis label_15.
Jetzt würde ich gerne aus einem String eine Variable erzeugen. Der String beinhaltet z.B. "label_1". Und aus diesem String soll dann die "Variable" label_1 erzeugt werden...
Hier mal der Code:

C++:
private: System::Void comboBox_Sensor_1_SelectedIndexChanged(System::Object*  sender, System::EventArgs*  e) {
			 String *S;
			 S = "1";
			 Maske_anpassen(S);
		 }

public: void Maske_anpassen(String *S)
{
	if (this->comboBox_Sensor_1->Text == "Widerstandsthermometer")
	{
		String *Str = String::Concat("label_", S);
		// hier sollte jetzt die Umwandlung von dem String *Str in die "Variable" label_1
		// erfolgen, sodass ich dann etwa schreiben kann:
		this->Str->Text = "Einheit:"; // hier ändere ich den Text des label_1.
	}
}

Ich habe schon mal nach der Funktion "eval()" gegooglet, hab aber nix gefunden :(

Wär über Lösungsvorschläge jeglicher Art dankbar.

Gruß Linzer
 
Zuletzt bearbeitet von einem Moderator:
du könntest über die ID gehen, z. B.

Code:
for( int i = ID_LABEL1, i < ID_LABEL1+15; i++ )
        SetDlgItemtext( i, "Text" )

natürlich nur, wenn deine numerischen ID's auch nacheinander stehen.

p. S. nur so runtergetippt. Ohne Gewähr!


grüssle :)
 
Moin,

@GillBates: Konnte es heute morgen erst ausprobieren. Funktioniert leider nicht... :(
Falls du oder jemand anderes noch eine Idee hat, dann würd ich mich freuen.

Gruß Linzer
 
Moin,

@GillBates: Konnte es heute morgen erst ausprobieren. Funktioniert leider nicht... :(
Falls du oder jemand anderes noch eine Idee hat, dann würd ich mich freuen.

Gruß Linzer

Merkwürdig. Hatte sowas schon mal gemacht. Sollte eigentlich funktionieren.

Von vorne:

In deiner resource.h sollte sowas stehen:
Code:
ID_LABEL1     1101
ID_LABEL2     1102
ID_LABEL3     1103
...
ID_LABEL15    1115

und im Code dann:
Code:
for( int i = ID_LABEL1, i < ID_LABEL15; i++ )
        SetDlgItemText( i, "Text" );

SetDlgItemText braucht 2 Parameter, die ID des Labels, und den Ausgabetext. Warum funktioniert das bei dir nicht?

Schau mal in deine resource.h

P. S.
... Funktioniert leider nicht... :(
...
Gruß Linzer
ist keine Fehlerbeschreibung!
Je genauer die Fehlerbeschreibung, desto besser die Hilfe.
Also: was funktioniert nicht, bzw. wie äussert sich der Fehler?

grüssle :)
 
Zuletzt bearbeitet:
Also,
Meine resource.h ist komischerweise "leer".

resource.h:
C++:
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by app.rc

Damit scheitert der Versuch wohl leider schon recht früh...
Desweiteren kommen dann die Fehlermeldungen:
1. error C2065: 'ID_LABEL1': nichtdeklarierter Bezeichner
2. error C2065: 'ID_LABEL15': nichtdeklarierter Bezeichner
3. error C2660: 'SetDlgItemTextA': Funktion akzeptiert keine 2 Argumente

Kennst du vielleicht eine vergleichbare Funktion zu "eval()" aus anderen Programmiersprachen in c++?

Gruß Linzer
 
Zuletzt bearbeitet von einem Moderator:

Neue Beiträge

Zurück