Kun yritän ajaa seuraavaa QBasic-koodinpätkää:
CLS CALL Viesti("Hellou", "Terwe", "120")
niin QBasic sanoo: "Duplicate definition". Saatte vielä viesti-funktion sisällöt.
FUNCTION Viesti (sisalto$, otsikko$, painikkeet$) PRINT "Hello World!" 'vähän vaiheessa END FUNCTION
Osaatteko auttaa?
Muuta sanat FUNCTION sanoiksi SUB. FUNCTION palauttaa arvon, SUB ei palauta.
siis... löysin idean viesti-funktioon juuri sinun sivuiltasi, kun katselin ravintola bisnestä, ja päätin tehdä hieman omani tyyppisen (aloitat 10 km2 suurella kiskalla, rahaa siinä pankista saadut 10 000) ja pitäisihän tässä olla mahdollisuus valita vähän niinkuin VB:n MsgBoxilla, että mitä mieltä on, esim. kyllä, ei...
EDIT: kivat sivut muuten sulla
Komennolla CALL voi siirtyä ainoastaan aliohjelmaan (SUB).
Muuta koodia näin:
FUNCTION Viesti% (sisalto$, otsikko$, painikkeet$) PRINT "Hello World!" 'vähän vaiheessa Viesti% = 1 END FUNCTION a% = Viesti%("Hellou", "Terwe", "120") PRINT a%
Nyt funktio voi palauttaa kokonaisluvun, joka tulee muuttujaan a%.
Kiitos! Enpä tiennyt, että CALL siirtyisi vain SUBiin, kun VB:ssä se taitaa toimia myös funktioihin.
FUNCTION:n idea on se, että se palauttaa jonkin arvon. Jos aliohjelman tarvitsee vain tulostaa tekstiä, se ei palauta mitään, ja silloin tulee käyttää SUB:ia. Tietysti nyt Antti muokkasi tuota niin, että se palauttaa arvon, mutta se ei ole tuossa tarpeen.
Tarkoitus oli tehdä hieman niinkuin MessageBox.
Aihe on jo aika vanha, joten et voi enää vastata siihen.