[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: |
---|
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!