Survopoint-näyttötila

[viesti Survo-keskustelupalstalla (2001-2013)]

Kirjoittaja: Seppo Mustonen
Sähköposti:    -
Päiväys: 30.3.2012 8:39

Minua on jo pitkän aikaa kiehtonut ajatus siitä, että Survossa voisi
laatia erilaisia tekstejä (selostuksia, oppitunteja, jopa "runoja")
toimituskentän ikkunaan niin, että teksti "eläisi".
Siis määrävälein tai satunnaisesti jotkin ilmaisut vaihtelisivat
dynaamisesti.
Saattaisi näin osoittaa olevansa "kahden vaiheilla" jossain asiassa.
Tavallaan useat sukroina tehdyt sovellukset (esim. alarivillä näkyvin
opastein) lähestyvät tätä toimintatapaa.

Olisi myös luontevaa ajatella, että toimituskentässä esitettäisiin
asioita luettelemalla otsikkotekstin alla systemaattisessa
tai satunnaisessa järjestyksessä pitkiäkin listoja niin, että po. lista
näin dynaamisesti näytettynä varaa vain yhden rivin.

Samoin olen muistellut kaiholla aikaisempia Survon editoreita, joissa
oli mahdollisuus näyttää (varjolla 5) vilkkuvaa tekstiä.

Huomasin pari viikkoa sitten, että tällaiset toiveet pystyy toteuttamaan
hyvin vähäeleisin keinoin Survon toimituskentän sisäisen rakenteen
ansiosta.

Ennenkuin jatkat lukemista, kannattaa katsella gif-animaatiota

http://www.survo.fi/demos/ex74.html 

joka näyttää yhdellä kertaa joitain sekalaisia esimerkkejä.

Em. tarkoituksia varten olen lisännyt Survon editoriin erityisen
Survopoint-näyttötilan (Survopoint display mode), joka käynnistyy
näppäinyhdistelmällä F1 A ja keskeytyy napeilla F1 a.

Yksinkertainen esimerkki:

  11 *
  12 ~ (Se, mitä tällä rivillä näytetään, voi vaihdella.)     ~a
  13 *
  14 a 20 3 S
  15 * Tämä on ensimmäinen vaihtoehto.
  16 * Tässä on toinen vaihtoehto.
  17 * Kolmas vaihtoehto voi olla jotain muuta.

Tässä on ote toimituskentästä, johon syntyy eloa, kun painetaan
nappeja F1 ja A.
Avainasemassa on rivi 12, joka kontrollisarakkeessa on matomerkki ~.
Saman rivin loppupuolella on merkintä ~a , mikä tarkoittaa, että
rivin 12 normaalin näyttämisen asemasta se, mitä todella näkyy,
ilmaistaan rivillä, jonka kontrollimerkkinä on a.

Itse rivi a (tässä 14) kertoo millaisin säännöin näyttö tapahtuu.
Tässä tapauksessa on kolme parametria. Näistä ensimmäinen (20) kertoo,
millä tiheydellä ajan suhteen rivin 12 näyttöä muutetaan.
Toinen parametri (3) kertoo vaihtoehtorivien lukumäärän ja nuo rivit
ovat välittömästi a-rivin perässä.
Kolmas parametri (S) sanoo, että rivit vaihtuvat näytössä
systemaattisesti.

Todellisuudessa vaihtoehtoisia rivejä ei siirrellä toimituskentässä
(koneen muistissa) lainkaan, sillä sellainen kuluttaisi resursseja.
Kutakin riviä näytettäessä Survon pääikkunassa, riviin viitataan
C-kielelle ominaisella tavalla osoitinmuuttujalla (pointer).
Survopoint-tilassa editoria "katalasti harhautetaan" näyttämään
ihan muuta kuin alkuperäistä riviä pelkästään muuttamalla osoittimen
arvoa.
Tässä hyödytään myös paljon Survon editorin muistakin ominaisuuksista
(mm. kontrollisarakkeen käyttö). Kaikki ohjaustiedot sijoitetaan
tavallisesti näkymättömiin Survon pääikkunan ulkopuolelle.

Vaikka Survopoint-tila on päällä, saattaa tehdä melkein mitä tahansa
muutoksia toimituskenttään ja jopa tätä tilaa ohjaaviin riveihin.
Voi jopa vaihtaa toiseen toimituskenttään, jossa on vallalla aivan
erilaiset Survopoint-asetukset tai ei niitä ollenkaan.

Nuo matorivit voivat toimia myös komentoina ja linkkeinä.
Äskeisessä esimerkissä rivin 12 todellinen sisältö voisi olla vaikkapa

  12 ~ http://www.survo.fi/demos/ex74.html                    ~a

jolloin Survopoint-tilassakin (jolloin rivillä näkyy vaihtelevasti
rivejä 15-17) rivin 12 aktivointi aloittaa em. gif-animaation.

                       * * *
Tarkempia tietoja:

Yhdessä toimituskentässä Survopoint-rivejä voi olla 26 kappaletta
samanaikaisesti ja niiden määrittelyjen rivitunnukset ovat pienet
kirjaimet a - z.

Rivejä voi vaihdella kolmella eri tavalla:

Systemaattinen:
<aika> <vaihtoehtojen lukumäärä> S

Satunnainen tasajakaumalla:
<aika> <vaihtoehtojen lukumäärä> U

Satunnainen määrätyin todennäköisyyksin:
<aika> <vaihtoehtojen lukumäärä n> p_1 p_2 ... p_n
missä p_1 + p_2+ ... + p_n = 1.

Parametri <aika> on kokonaisluku, joka ilmoittaa kuinka tiheästi
näytettävä rivi vaihtuu. Survo-ikkunaa päivitetään normaalisti
(kun esim. käyttäjä ei tee mitään) kerran sekunnissa.
Kun ollaan Survopoint-tilassa, virkistys tapahtuu tiheämmin eli
oletusarvoisesti 50 millisekunnin välein (20 kertaa sekunnissa).
Jos siis <aika> on 100, po. rivi muuttuu 5 sekunnin välein.
Survo-ikkunan virkistystaajuutta hallitsee systeemiparametri
Survopoint_disp (SURVO.APU-tiedostossa) ja sen oletusarvo on siis 50.

Myös Survopoint-rivien matotunnunnuksen ~ voi vaihtaa toiseksi
systeemiparametrilla Survopoint. Survopoint-tilaa säätelee varsinaisesti
parametri Survopoint_on, joka muuttuu nollasta ykköseksi, kun tuo
tila otetaan käyttöön.

Survopoint-tila on käytettävissä sukrojenkin, esim. opetusohjelmien
yhteydessä ja se on saatavilla SURVO MM -versiosta 3.35 eteenpäin.
Olen jo antamut Reijo Sundille tämän uudistuksen tarvitseman
C-koodin (sukropuolta lukuunottamatta) ja niin tämä ominaisuus
on jo osittain mukana Musteessa.

Vaikka monet saattavat suhtautua tähän uudistukseen pelkkänä hupina,
uskon itse vakaasti myös hyötysovelluksiin ainakin opetus- ja
esittelytilanteissa.
Tarvitaan hiukan mielikuvitusta ja kykyä yhdistellä Survon eri
ominaisuuksia. On mm. mahdollista luoda monirivisiä eläviä
"osaikkunoita".

Vastaukset:
[ei vastauksia]

Survo-keskustelupalstan (2001-2013) viestit arkistoitiin aika ajoin sukrolla, joka automaattisesti rakensi viesteistä (yli 1600 kpl) HTML-muotoisen sivukokonaisuuden. Vuoden 2013 alusta Survo-keskustelua on jatkettu entistäkin aktiivisemmin osoitteessa forum.survo.fi. Tervetuloa mukaan!

Etusivu  |  Keskustelu
Copyright © Survo Systems 2001-2013. All rights reserved.
Updated 2013-06-15.