Skriva ut texter
För att skriva ut en dynamisk text måste man använda en subgraf som innehåller en Annotation.
T ex innehåller nästan alla trycknappar en Annotation för att man ska kunna skriva ut en
text på knappen. Även value och inputvalue subgrafer innehåller en Annotation.
En annotaion är en plats i subgrafen där en text kan skrivas ut. Texten kan antingen anges
i editorn, eller med hjälp av några olika typer av dynamik kopplas till attribut i databasen
och förändras i runtime.
Det olika typer av text-dynamik vi ska titta på här är
- DigText, där man skiftar mellan två olika texter beroende på en digital signal.
- AnalogText, där man skiftar mellan flera olika texter beroende på en analog signal.
- Value, som kopplas till ett sträng-attribut i databasen och visar attributets innehåll.
Skifta mellan två texter på en digital signal
Dynamiken DigLowText skiftar mellan två texter beroende på en digital signal.
Vi skapar en trycknapp av typen ButtonRoundMetalFrame och öppnar objektseditorn.

Fig Trycknapp med Annotation
I Text kan man lägga in en text som visas på trycknappen, och vi lägger in texten 'Off'.
Genom att addera dynamiken DigText kommer texten i Text att ersättas av texten i
DigText.LowText när signalen vi kopplar till DigText.Attribut är låg. Vi lägger in 'On' i
DigText.LowText och kopplar DigText.Attribute till Dv'n H1-Dv1. För enkelhets skull kopplar
vi även ToggleDig.Attribute till samma signal så att vi enkelt kan ändra på den genom att
klicka på knappen.

Fig Dynamik DigLowText
Dynamiken fungerar nu så här. När H1-Dv1 är låg skrivs texten 'On' ut på knappen, dvs texten
i DigText.LowText, och när signalen är hög skrivs texten 'Off' ut, den text vi skrev in i Text
attributet.

Fig Låg signal till vänster och hög signal till höger
DigText har flera instanser, och för varje instans kan man ange en text och koppla den till
en digital signal. Observera att funktionen är annorlunda för de andra instanserna. För den
första anger man en LowText, dvs en text som skrivs ut när signalen är låg. På övriga
instanser anger man en HighText, en text som skrivs ut när signalen är hög.
Skifta mellan flera texter beroende på en analog signal
För dynamiken AnalogColor kan man ange upp till 32 olika texter, och vilken av texterna som
skrivs ut beror på värdet av den analoga signal som kopplas till dynamiken.
Vi använder en ValueLargeCenter för att demonstrera dynamiken.

Fig En ValueLargeCenter subgraf
ValueLargeCenter har Value dynamik som default, så vi börjar med att ta bort den genom att
ta bort Inherit in DynType, och lägger istället in AnalogText.
I AnalogText.TextMask markerar man de texter som ska användas. Vi kommer att skifta mellan
fyra olika texter och markerar 2, 3 och 4. Texterna 'Low level', 'Normal level', 'High level'
och 'Very high level' fylls i text-attributen. Vi behåller enumvärdena, vilket innebär att
AnalogText.Text1 visas när signalen är 0, AnalogText.Text2 när signalen är 1 osv. I praktiken
är det så att texten skiftar vid värdena 0.5, 1.5 och 2.5. Om signalen är större än 3.5
skrivs inte någon text ut alls.
Vi kopplar också Av'n H4-Av1 till AnalogText.Attribute.

Fig Value dynamiken ersatt av AnalogText
I figuren nedan visas value-objektet när H4-Av1 har värden 0, 1, 2 och 3, med
0 värdet längst ner.

Fig Texten vid olika värden på H4-Av1
Visa texten i ett sträng-attribut
För att visa innehållet i ett sträng-attribut i databasen använder man Value dynamiken. Som
i föregående exempel skapar vi ett ValueLargeCenter objekt.

Fig En ValueLargeCenter subgraf
Den här subgrafen har Value som default dynamik, så vi behöver bara koppla Value.Attribute
till ett sträng-attribut och lägga in sträng-formatet '%s' i Value.Format. Vi kopplar
Value.Attribute till Sv-objektet H1-Sv.

Fig Value dynamik
För att visa resultatet lägger vi in texten 'Starting up' i H1-Sv1 i Xtt.

Fig Sätt en text i Sv attributet
Texten visas i Value-objektet.

Fig Texten skrivs ut i value objektet