Stringvariable mit Farbe hinterlegen

Ich hab eine Stringvariable, die ein Datum enthält. Ich möchte den Wert in der Visualisierung gerne mit einer Farbe hinterlegen. Natürlich über das Profil. Aber welchen Wert muss ich nehmen, damit die Assozation immer zieht? Und was trage ich dann beim Text an, damit das Datum angezeigt wird.

Zur Farbe kann ich leider nichts sagen, zum Format würde ich von %s ausgehen; analog zu den anderen Formatangaben in printf-Syntax .

Danke, aber %s funktioniert leider nicht. Da kommt (mit dem genaunen Wert probiert) „%s“ heraus. Dürfte nicht implementiert sein.

Bei Strings ist es ein 1:1 Mapping. Du müsstest also jedes Datum anlegen weil es keine Regeln gibt welche Farbe wann greift. Ich befürchte deine Idee wird nicht klappen.

paresy

Schade, war ins Blaue geschossen,

Natürlich sind Assoziationen bei String etwas anders als bei den anderen Datentypen, weil es ja kein größer/kleiner gibt (wenn man von lexikalischer Sortierung mal absieht).
Aber man könnte - neben den Assoziationen mit exakten Übereinstimmung ja schon eine Platzhalter-Assoziation zulassen → also alle Strings, die nicht zu den vorgegebenen Werten passen.
Gerade bei String-Profilen gehe ich davon aus, das die Wertemenge eben nicht exakt bekannt ist oder ziemlich groß. Und da wäre es schon schick, wenn man bei bekannten Einträgen eine Übersetzung und passende Farbe wählen könnte und „für den Rest“ dann den Originaltext ausgeben und eine Warnfarbe.
Dann bleibt ja nix anderes, als situativ das Variablenprofil um unbekannte Eintröge zu ergänzen (mit IPS_DeleteVariableProfile() / IPS_SetVariableProfileAssociation()) und diese neuen Eintröge dann in Warnfarbe … irgendwie auch nicht schön.

Schade. Integer funktioniert ja auch nicht, da ich dann für die Darstellung das Standardprofil verwenden müsste.

Woher kommt denn der Wert? Könntest das Profil per Script anpassen, auf den aktuellen Wert + Farbe?

Genauso würde ich es auch machen.
Wenn die Assoziationen 1:1 dem Wert entspricht, sollte die Farbe ja greifen.
Michael

Aus dem Kalendermodul, welches ich für meine Abfuhrtermine verwende. Ich wollte halt viele Einträge vermeiden.
Wie erwähnt, wollte ich es für die Darstellung eines Abfuhrkalenders verwenden.
Kunststoff = Gelb
Bio = Braun
Papier = Rot
Rest = Schwarz

Dann einfach per Script bei Änderung der Variable.
Hab sowas mal gemacht:

//Löschen der Positionen
$profile = IPS_GetVariableProfile("ProfilName");
foreach ($profile['Associations'] as $association) {
    IPS_SetVariableProfileAssociation("ProfilName", $association['Value'], '', '', -1);
}
//Neu anlegen:
IPS_SetVariableProfileAssociation("ProfilName", "Wert", "Anzeigetext", "Symbol", 0x000000);

IPS_SetVariableProfileAssociation — IP-Symcon :: Automatisierungssoftware

Vielen Dank. Schaut gut aus.
image