Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: QB: Duplicate definition (VB6)

moptim [03.11.2006 17:25:45]

#

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?

Antti Laaksonen [03.11.2006 17:51:52]

#

Muuta sanat FUNCTION sanoiksi SUB. FUNCTION palauttaa arvon, SUB ei palauta.

moptim [03.11.2006 18:02:24]

#

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

Antti Laaksonen [04.11.2006 09:47:56]

#

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%.

moptim [04.11.2006 10:21:43]

#

Kiitos! Enpä tiennyt, että CALL siirtyisi vain SUBiin, kun VB:ssä se taitaa toimia myös funktioihin.

hunajavohveli [04.11.2006 13:19:33]

#

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.

moptim [06.11.2006 15:59:15]

#

Tarkoitus oli tehdä hieman niinkuin MessageBox.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta