German Konstante in Variable packen

Bobbes

Active Member
Licensed User
Longtime User
Guten Tach,

besteht die Möglichkeit eine Konstante in eine Variable zu packen.
Zu Beispiel : in der Spalte ColColors steht : cBlack
cWhite
cRed
usw..
aus dieser Spalte kann ich jetzt über Table1.cell("ColColors",ring1) die Konstante z.B. cblack auslesen.
Wenn ich aber jetzt diese Konstante nutzten will z.B.
als Farbgebung für einen Button, kommt die Meldung
"Input String was not in a corect format"
Das selbe passiert wenn ich vorher eine Variable bilde.

Gruß
Bernd
 

specci48

Well-Known Member
Licensed User
Longtime User
Hallo Bobbes,

in Basic4ppc ist die von Dir gewünschte Vorgehensweise leider nicht direkt möglich. Einige Sprachen können dies, z.B. besitzt REXX für solche Dinge einen "Interpret"-Befehl.

Trotzdem kann man sich bei Deinem Problem leicht mit einer separaten Sub aushelfen. Folgendes funktioniert:
B4X:
Sub App_Start
   Table1.AddCol(cString, "Farbe", 50)
   Table1.AddRow("cRed")   
   Table1.AddRow("cBlue")   
   Table1.AddRow("cGreen")   
   Button1.Color = getColor(Table1.Cell("Farbe", 0))
   Label1.Color = getColor(Table1.Cell("Farbe", 1))
   ComboBox1.Color = getColor(Table1.Cell("Farbe", 2))
   Form1.Show
End Sub

Sub getColor(farbe)
   Select farbe
        Case "cRed"
            Return cRed
        Case "cBlue"
            Return cBlue
        Case Else
            Return cGreen
   End Select
End Sub
Du brauchst jetzt nur noch in der Sub getColor sämtliche von Dir genutzten Farben ergänzen.


Gruß
sepcci48
 

Bobbes

Active Member
Licensed User
Longtime User
Hi Specci48,
danke für deine Antwort. Ich werde sie so auch in Erwägung ziehen.
Habe dann noch eine Lösung: habe einfach 3 spalten hinzugefügt
und habe da die Farben Rot Grün Blau als Zahlencode eingefügt.
Danach habe ich mit Rot = table1.cell("Rot",counter)
Grün = table1.cell("Grün",counter)
Blau = table1.cell("Blau",counter)
die Tabelleneinträge zu Variablen gemacht und dann das ganze mit RGB() weiterverwendte zum Beispiel so:
Button1.Color=RGB(Rot,Grün,Blau)

Mal sehen wie ich das einsetze, danke nochmal.

Gruß
Bernd
 
Top