beim basteln mit php bin ich auf einen sehr simplen Weg gestossen, z.B. die Uhrzeit oder beliebige andere Werte als Digitalanzeige/ 7-Segment Anzeige anzeigen zu lassen.
Voraussetungen:
-php für Studio muß installiert sein
-es muß eine Typdefinition der Digitalanzeige gemacht werden.
Im einzelnen:
man benötigt die Zahlen 0 bis 9 als Grafiken, so wie die Anzeige gestaltet sein soll. Das läßt sich mit vielen Grafikprogrammen problemlos machen.
Mit diesen Grafiken definiert man einen neuen Typ, z.B. DigiAnzeige
Dieser Typ bekommt 10 Zustände, von 0 bis 9, der erste muß 0 sein, dann aufsteigend bis 9.
Studio läßt allerdings keine Zahlen zu bei der Typdefinition, deshalb einfach null, eins, zwei etc verwenden.
Jeder "Zustand" bekommt die entsprechende Grafik zugewiesen (0 = 0, 1 = 1....)
Nun muß man sich Gedanken machen, was angezeigt werden soll. Am Beispiel einer Uhr (Std,Min,Sec, je 2 Stellen) werde ich es aufzeigen.
Für jede Stelle muß ein Objekt angelegt werden:
DigUhrHrZ für die Zehner Stunden
DigUhrHrE für die Einer Stunden
DigUhrMinZ für die Zehner Minuten
DigUhrMinE für die Einer Minuten
DigUhrSecZ für die Zehner Sekunden
DigUhrSecE für die Einer Sekunden.
Jedes Objekt vom Typ DigiAnzeige, wie oben definiert.
Die 6 Objekte werden wunschgemäß auf der Ansicht plaziert.
Wenn nicht vorhanden das Uhr-Objekt erstellen:
Objekt Name Uhr, Typ Zeichen oder Makro, Ausführung permanent, 1 mal je sekunde
Makro:
Code: Alles auswählen
Uhr:=Uhrzeit
Diese "Uhr" wird nun in der Digitalanzeige verwendet:
Makro:
Name beliebig, z.B. DigiUhr, Typ Makro, Ausführung permanent 1 mal pro sekunde
Code: Alles auswählen
** Uhr als 7-Segment Anzeige
** die einzelnen Digits müssen definiert sein
** als Objekte mit den Zuständen 0 bis 9
** analog die angezeigten Zahlen
** Die Objekte werden nur über den Index angesprochen
** d.h. erster Zustand = 0, 2ter= 1 etc.
<?
// Uhr enthält die Uhrzeit aus Studio (Uhr:=Uhrzeit, sekündlich)
$split = str_split($Uhr);
$DigUhrHrZ = $split[0];
$DigUhrHrE = $split[1];
$DigUhrMinZ = $split[3];
$DigUhrMinE = $split[4];
$DigUhrSecZ = $split[6];
$DigUhrSecE = $split[7];
?>
Diese einstelligen Zahlen werden nun den Objekten zugewiesen, und zwar als Index, nicht über den Namen der Typdefinition. Das geht laut contronics schneller, da die Namen nicht aufgelöst werden müssen, ausserdem passt es hier für eine Zahlenanzeige ganz wunderbar.
Vielleicht nützt es dem einen oder anderen, sein Projekt optisch aufzuwerten. In den Projektvorstellungen ist ja eine Oberfläche im Wetterstationslook vorgestellt, der Autor meine allerdings, es sei eine Heidenarbeit, die 7-Segment Anzeigen zu basteln.
Ich denke, der oben beschriebene Weg ist nicht zu aufwändig. Einmal die Grafiken erstellen, Typ definieren und dann je Ziffer ein Objekt.
Viel Spaß damit!! Funktioniert prima!!
Sanys