XLOGO povas interagi kun la uzulo dum la rulado de programo, per klavaro kaj muso.
Oni povas do ricevi tekston de l’ uzulo dum ruli la programon, per 3 primitivoj: klave?, litleg kaj leg.
Donu “vera” aŭ “malvera” laŭ ĉu oni premis klavon aŭ ne post la komenco de ruli la programon.
|
Se vi havas dubon pri la vorto redonata de klavo, sufiĉas tajpi: s litleg. L’ interpretilo tiam atendos ke vi premos klavon, poste donos la rilatan valoron.
Afiŝu dialogfenestron kies titro estu listo1. L’ uzulo povas tiam enigi respondon en tekstokampo; la respondon oni konservos kiel vorton aŭ liston (se l’ uzulo tajpos plurajn vortojn) en la variablon vor2 kiam ŝli validigos aŭ klakos la butonon Akceptu.
pour juna leg [Kiom vi aĝas?] "aĝo provizu "aĝo :aĝo se :aĝo<18 [s [Vi estas malplenkreskulo]] se aŭ :aĝo=18 :age>18 [s [Vi estas plenkreskulo]] se :aĝo>99 [s [Mi respektu!!]] fino por ralio se klave? [provizu "sig litleg si :sig=-37 [mdn 90] si :sig=-39 [dn 90] si :sig=-38 [an 10] si :sig=-40 [man 10] si :sig=27 [haltu]] ralio fino # Kontrolu la testudon per la klavaro, haltigu per Esk |
Por tio, oni havas tri primitivojn: musleg, muse? kaj mussit.
Haltigu la programon ĝis musa evento okazas. Estas museventoj: movi la muson aŭ klaki iun butonon ĝian. Okazinte l’ evento, musleg donas nombron ebligantan karakterizi l’ eventon. Jen la diversaj kodoj asociitaj al la diversaj eventoj:
La butonoj estas numeritaj de maldekstre al dekstre (principe...).
Donu liston enhavantan la koordinatojn de la muso dum la lasta interkaptita evento.
Donu “vera” aŭ “malvera” laŭ ĉu oni agis aŭ ne per la muso post la komenco ruli la programon.
En tiu unua proceduro, la testudo sekvas la muson kiam ĝi moviĝas sur la desegnejo.
por ekzemplo1 # Se oni movas la muson, loku sin al la novan situon se musleg=0 [sitp mussit] ekzemplo1 fino |
En tiu dua proceduro, estas la sama principo krom ke necesas klaki la maldekstran butonon musan por movi la testudon sur la desegnejo.
por ekzemplo2 se musleg=1 [sitp mussit] ekzemplo2 fino |
En tiu tria ekzemplo, ni kreos du butonojn. Tiu maldekstra ebligos grafiki kvadraton je 40 mul 40 al la dekstro; tiu dekstra, malgrandan cirklon al la maldekstro. Finfine, se oni klakos la trian butonon de la muso, la programo haltos.
por butono # kreu ortangulan butonon je 50 mul 100 farbita je salmakoloro ripetu 2 [an 50 dn 90 an 100 dn 90] dn 45 l an 10 ml skolp [255 153 153] plenigu mal 10 mdn 45 ml skolp 0 fino por lanĉu ev butono l skolp [150 0] ml butono l skolp [ 30 20] ml etikedu "Kvadrato l skolp [180 20] ml etikedu "Cirklo l skolp [ 0 -100] ml muso fino por muso # Konservu la rezulton de musleg en la variablon ev provizu "ev musleg # Konservu la unuan koordinaton de la muso en la variablon x provizu "x eron 1 mussit # Konservu la duan koordinaton de la muso en la variablon y provizu "y eron 2 mussit # Se oni klakus la maldekstran butonon se :ev=1 & :x>0 & :x<100 & :y>0 & :y<50 [kvadrato] # Se oni klakus la dekstran butonon se :x>150 & :x<250 & :y>0 & :y<50 [si :ev=1 [cirklo] si :ev=3 [haltu]] muso fino por cirklo ripetu 90 [an 1 mdn 4] mdn 90 l an 40 dn 90 ml fino por kvadrato ripetu 4 [an 40 dn 90] dn 90 an 40 mdn 90 fino |
XLOGO ebligas ankaŭ aldoni kelkajn grafikajn konsistaĵojn (butonon, malvolveblan menuon...) al la desegnejo. Ĉar tiaj konsistaĵoj rilatas al grafikaj uzulaj interfacoj, ĉiu primitivo por tiu afero komenciĝas per la prefikso «GUI».
Por manipuli tiajn grafikajn objektojn, antaŭ ĉio necesas krei ilin, aldoni al ili iujn atributojn, kaj poste afiŝi ilin.
Tiu komando kreas butonon kies identiga nomo estas vor1 kaj sur kiu estas skribita mot2.
Ekzemplo: gui_butonon "b "Klaki
Tiu komando kreas menuon kies nomo estas vor1 enhavantan l’ erojn de la listo listo2
Ekzemplo: gui_menuon "m [ero1 ero2 ero3]
Ebligas loki la grafikan elementon sur la deziratan situon en la desegnejo. Ekzemple, por loki la antaŭan butonon al punkto kun koordinatoj (20;100), skribu:
gui_koordinatojn "b [20 100] |
Se la situo de la konsistaĵo ne estas indikita, la konsistaĵo estos lokita apriore je la supra maldekstra angulo de la desegnejo.
Forviŝu grafikan elementon. Ekzemple, por forigi la antaŭan butonon:
gui_forigu "b |
Difinu agadon realigendan kiam l’ uzulo interagos kun la grafika elemento konsiderita.
# La testudo anta^uen iru 100 paŝojn se oni klakos butonon "b gui_agadon "b [an 100] # Por la malvolvebla menuo, ^ciu ero havas sian propran agon gui_agadon "m [[skrbiu "ero1] [skribu "ero2] [skribu "ero3]] |
Afiŝu la grafikan konsistaĵn sur la desegnejon. Ekzemple, por montri la butonon:
gui_desegnu "b |