Hiiren osoittamien kuvakoordinaattien lukeminen

[viesti Survo-keskustelupalstalla (2001-2013)]

Kirjoittaja: Seppo Mustonen
Sähköposti:    -
Päiväys: 26.10.2001 18:14

Tilastollisen tietojenkäsittelyn seminaarissa viime tiistaina 23.10
näytin mm. oheisella, kaavamaisella esimerkillä, miten Survossa
(sukrojen avulla) kommunikoidaan Survon omien kuvaikkunoiden kanssa.
Lupasin lähettää esimerkin tähän keskusteluun, jotta asiasta
kiinnostuneet voisivat ottaa sen pohjaksi tehdessään tällä tappaa
"interaktiivisia" sovelluksia.

DELETE / Vie kohdistin kontrollisarakkeseen ja aktivoi!
*TUTSAVE MKOE
/ Tämä sukro näyttää, miten tietoa siirretään Survon mistä tahansa
/ kuvaikkunasta sukrolla edelleen käsiteltäväksi.
/ Kun kuvaa tässä tapauksessa näpäytetään hiirellä,
/ sukro kertoo hiirellä osoitetun "ruudun".
/
*{tempo -1}{init}{R}SCRATCH {erase}{act}{R}
/
/ Kuvaa koskevat täsmennykset:
*HEADER=[Swiss(70)][RED],Näpäytä_jotain_ruutua!{R}
*MODE=1000,800  SIZE=1000,800  XDIV=100,800,100 YDIV=100,600,100{R}
*MOUSE=MOUSE.MSG / Tiedosto, johon kerätään hiiren antamat tiedot{R}
*XSCALE=[Swiss(30)],0(1)8 YSCALE=0(1)6  GRID=1,1{R}
/ Kuvan piirto:
*GPLOT Y(X)=0{act}{R}
/
/ Tämänhetkisen datapolun talletus:
*{save datapath W2}
/
/ Hiiritiedoston tyhjennys:
*FILE DEL MOUSE.MSG{act}{R}
/
/ Ohjelmakierros, jossa odotetaan hiiren näpäytystä:
+ A: {erase}{line start}
/
/ Sekunnin odotus, ettei "rasiteta" konetta liikaa:
*{tempo +1}{wait 10}{tempo -1}
/
/ Katsotaan onko kuvaa hallitseva ohjelma (GPLOT) tallettanut tietoja:
*CHECK {print W2}MOUSE.MSG{act}
/
*{r}{save char W1}
/
/ Jos CHECK ilmoittaa "NOT FOUND!", palataan kierroksen A alkuun:
- if W1 '=' N then goto A
*{R}
/
/ Tähän tullaan, jos hiiritiedosto on jälleen olemassa (OK)
/ ja poimitaan tiedoston sisältö esim.
/ 1 L 455 345
/ toimituskenttään.
/ Tässä 1=ikkunan nro., L=painettu vasenta (Left) painiketta,
/ 455=X-koordinaatti, 345=Y-koordinaatti MODE-täsmennyksen
/ osoittamassa koordinaatistossa:
/
*LOADP MOUSE.MSG{act}{R}
/
/ Poimitaan saadut X- ja Y-koordinaatit ja muunnetaan ne vastaamaan
/ ruutujen numeroita:
*{next word}{next word}{save word W1}{next word}{save word W2}{R}
*int({print W1}/100)={act}{l} {save word W1}{R}
*int({print W2}/100)={act}{l} {save word W2}{R}
/
/ Ilmoitetaan ruutu, jota hiirellä on näpäytetty ja lopetetaan:
*Ruutu: {print W1},{print W2}{R}
*{end}
*
*.........................
*Käyttöesimerkki:
*/MKOE
*Sukron antamaa tulostusta:
*HEADER=[Swiss(70)][RED],Näpäytä_jotain_ruutua!{R}
*MODE=1000,800  SIZE=1000,800  XDIV=100,800,100 YDIV=100,600,100
*MOUSE=MOUSE.MSG / Tiedosto, johon kerätään hiiren antamat tiedot
*XSCALE=[Swiss(30)],0(1)8 YSCALE=0(1)6  GRID=1,1
*GPLOT Y(X)=0
*FILE DEL MOUSE.MSG
*CHECK G:\E\U\D\MOUSE.MSG OK
*LOADP MOUSE.MSG
*1 L 455 345
*int(455/100) 4
*int(345/100) 3
*Ruutu: 4,3

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.