WINNEW() funktiolla luodaan ikkunoita ja ikkunoiden objekteja. Oheisessa esimerkissä esim. ikkunassa Testi on editoitavia kenttiä, jotka oli myös eräänlaisia ikkunoita. Näin luodut ikkunat ovat identtisiä kuin esim. GET tai XGET -käskyillä tehdyt vastaavat ikkunat.
[muuttuja] Editoitava muuttuja.
[x] ikkunan oikea reuna pikseleissä kuvaruuden reunasta katsoen. Jos jätetään pois ohjelma käyttää nollaa.
[y] ikkunan yläreuna pikseleissä kuvaruuden yläreunasta katsoen. Jos jätetään pois ohjelma käyttää nollaa.
[leveys] ja [korkeus] ikkunan ulkomitat tai [korkeus] pikseleissä.
[arvo] on ikkunan erikoistyyli, kt. esimerkki ja kt. tyylit.
[maski] mikäli muuttuja on numero voidaan käyttää sopivaa maskia. Muuten voi olla nolla tai pois.
Formaatissa voi olla numerotunniste esim. "610|999.99" tai myös "610|", jolloin ohjelma lähettää aliohjelmaan viestin nappain=610.
[id-arvo] jos tähän laitetaan ykkönen ikkunaan tulee pistenappi, joka laukaisee 400 -viestin (kt. esimerkki).
[fontti] nimikkeiden fontti.
Funktio palauttaa ikkunapidikkeen tai nollan jos funktio epäonnistuu.
|
van=setwindow() |
|
Edit ikkunoihin voi lähettää erilaisia viestejä sendmessage() ja postmes() -funktiolla erilaisten Windowsin omien viestien lisäksi:
(HUOM! näillä esimerkeillä viittaan ylläolevan esimerkin ikkunoihin)
sendmessage(apu3[2],197,0,0)
Kun lähetetään viesti 197 ikkunalle siihen voidaan tallentaa paljon tekstiä (max 32 tuhatta merkkiä). Normaalisti kenttään saa tallentaa vain alkuperäisen muuttujan sisältämä määrä tekstiä.
sendmessage(apu3[1],1024+2,0,0)
Kun lähetetään viesti 1024+2 (eli 1026) ikkunalle se muuttuu aktiiviseksi ja vilkkuva kursori tulee kenttään.
sendmessage(apu3[5],1024+4,1,610)
Kun lähetetään oheinen viesti 1024+4 (eli 1028) ikkunalle ja lisäksi kolmas parametri on 1 kaikki muutokset ja kenttään tulemiset ja poistumiset laukaisevat viestin 273 ja muuttuja nappain saa arvon joka on neljännessä parametrissa.
Esimerkissä funktio getmessage() palauttaa siis arvon 273 ja muuttuja nappain saa 610, jolloin ohjelma tulostaa kellonajan koordinaattiin (1,1).
sendmessage(apu3[5],1024+4,4,0)
Kun lähetetään oheinen viesti 1024+4 (eli 1028) ikkunalle ja lisäksi kolmas parametri on 4 ohjelma lähettää WM_KEYDOWN/WM_KEYUP viestin.
sendmessage(apu3[5],1024+14,4,0)
Kun lähetetään oheinen viesti 1024+14 ikkunalle ja lisäksi kolmas parametri on annetu (tässä 4) ohjelma siirtää pystykursorin neljänteen merkkiin.
sendmessage(apu3[5],1024+4,5,0)
Kun lähetetään oheinen viesti 1024+5 (eli 1029) ikkunalle ja lisäksi kolmas parametri on 5 ohjelma
tallentaa automaattisesti ikkunan sisällön muuttujaan.
sendmessage(apu3[3],1024+7,0,0)
Kun lähetetään viesti 1024+7 (eli 1031) ikkunalle ja
kolmas parametri on nolla ohjelma tallentaa ikkunan muuttujaan ikkunassa olevan arvon.
Esimerkiksi muuttuja num1 sisältää numeron 55.2 vaikka kenttään olisi muutettu toinen numero. Kun tämä viesti lähetetään
saa esim. num1 arvon, joka näkyy ikkunassa.
Mikäli neljäs parametri on 1 tallennus on käänteinen: muuttujasta haetaan arvo ikkunaan.
Huom! Mikäli muuttuja on vektori, esim. ..=winnew(apu1[4],...
Käytä tallennukseen (edit -> muuttuja) komentoa apu1[4]=winrect(2,apu3[3]). Katso myös muita vaihtoehtoja tässä ohjeessa.
sendmessage(apu3[1],1024+7,double(apu3),0)
Kun lähetetään viesti 1024+7 (eli 1031) ikkunalle ja
kolmas parametri on double([ikkuna-vektori]) ohjelma tallentaa kaikkiin vektorissa oleviin muuttujiin ikkunassa olevan arvon.
Esimerkiksi muuttuja num1 sisältää numeron 55.2 vaikka kenttään olisi muutettu toinen numero. Kun tämä viesti lähetetään
saa esim. num1 arvon, joka näkyy ikkunassa.
Mikäli neljäs parametri on 1 tallennus on käänteinen: muuttujasta haetaan arvo ikkunaan.
Huom! Mikäli muuttuja on vektori, esim. ..=winnew(apu1[4],...
Käytä tallennukseen (edit -> muuttuja) komentoa apu1[4]=winrect(2,... ja tiedon hakuun muuttujaan toimintoa (muuttuja -> edit) Korvataan edit sisältö kokonaan.
sendmessage(apu3[1],1024+9,0,0)
Kun lähetetään oheinen viesti 1024+9 (eli 1033) käynnistyy etsintä -ikkuna (ohjelma etsija.dmf).
Tätä käytetään yleensä kun edit -ikkunoissa käsitellään kenttätietoa dbf -tietokannasta.
sendmessage(apu3[1],1024+10,double(kentta),0)
Kun lähetetään oheinen viesti 1024+10 (eli 1034):
kentta={kentta}
sendmessage(setfocus(),1024+10,double(kentta),0)
...muuttujaan kentta tallentuu aktiivisen edit -ikkunan muuttujanimi, esim. APU12
Mikäli esim. muuttujan apu12 sijaan on käytetty vektoria, esim, apu12[1] tms. tallentuu tekstinä nmero, joka kertoo monennettako edit -ikkunaan klikattiin.
sendmessage(apu3[1],1024+11,double(i),0)
Kun lähetetään oheinen viesti 1024+11 (eli 1035):
i={7,10,100,25}
sendmessage(apu3[1],1024+11,double(i),0)
...ikkunan apu3[1] sijanti ja koko muuttuu {x,y,leveys,korkeus}.
sendmessage(apu3[1],1024+12,double(i),1)
Kun lähetetään oheinen viesti 1024+12 (eli 1036):
i={apu3[1]}
sendmessage(apu3[1],1024+12,double(i),1)
...ikkuna apu3[1] muuttuu read-only'ksi. Jos lähetetään esim. sendmessage(apu3[1],1024+12,double(i),0) read-only -tila poistuu.
sendmessage(apu3[1],1024+5,double(i),0)
Kun lähetetään oheinen viesti 1024+5 (eli 1029):
i={"ABC"}
sendmessage(apu3[1],1024+5,double(i),0)
...ikkuna apu3[1] -editissä valittu teksti korvataan ABC:llä. Korvausasia pitää olla tekstinä, vaikka kenttä olisi esim. numerokenttä.
sendmessage(apu3[1],1024+13,double(i),0)
Kun lähetetään oheinen viesti 1024+13 (eli 1037):
i={"ABC"}
sendmessage(apu3[1],1024+13,double(i),0)
...ikkuna apu3[1] -editissä valittu teksti korvataan ABC:llä. Jos mitään ei ole valittu ohjelma lisää kursorin kohdalle ABC.