Miten QB:llä saa silleen että ohjelma tunnistaa milloin jotain muuttujaa muuttaa, ja sitetn menee tiettyyn aliohjelmaan heti kun muuttujan arvo muuttuu?
Ei mitenkään. Töki aliohjelma-kutsu joko jokaisen muutoksen perään, tai tee muuttujan muutolle oma aliohjelma, joka ensin muuttaa arvoa tietyllä arvolla ja sitten hyppää siihen toiseen aliohjelmaan.
Mutta miten saa sitten niin, että kun aliohjelma kutsuttaisiin tyyliin
asetamuuttuja(muuttujannimi, uusi-arvo)
mun käsityksen mukaan, niin mitenkä sitten saisi niin, että jos muuttujan nimi olis vaikka %leveys niin ja muuttujan arvoa kasvatettais vaikka kolmella:
asetamuuttuja(%leveys, %leveys+3)
niin sehän luulee että ton %leveys :n se korvaa automaattisesti %leveys :n tänhetkisellä arvolla, joten jos %leveys on nyt 52 niin ohjelmahan ymmärtää sen näin:
asetamuuttuja(52, 52+3)
Että siis...
Onnistuisiko jos tekisit function tyyliin:
leveys = asetamuuttuja(uusi-arvo)
EDIT: Voi voi kun nuo koodi tagit bugittaa jos ne laittaa samalle riville kun itse koodin pätkän...
lainaus:
Miten QB:llä saa silleen että ohjelma tunnistaa milloin jotain muuttujaa muuttaa
Debug-toimintojen avulla voi ohjelman saada keskeytymään suunnitteluvaiheessa, jos muuttujan arvo vaihtuu. Etenkin QB7.1:n Debug->Watchpoint soveltuu tähän hyvin.
lainaus:
ja sitetn menee tiettyyn aliohjelmaan heti kun muuttujan arvo muuttuu?
Ei onnistune millään järkevällä keinolla.
lainaus:
EDIT: Voi voi kun nuo koodi tagit bugittaa jos ne laittaa samalle riville kun itse koodin pätkän...
Kaikki tagit bugittavat, jos niitä ei käytä ohjeiden mukaisesti ;)
https://www.ohjelmointiputka.net/ohje.php?tunnus=kohjeet
Siis...?? nyt olen varmaan käsittänyt väärin... siis että jos jonkun muutujan arvoa vaihtaa, ohjelma menee johonkin subiin.
Arvo = 5 DO VarmistaArvo = Arvo IF Arvo <> VarmistaArvo THEN CALL sub LOOP
Tässä on nyt kyllä joku väärinymmärrys...
Ei tuossa muuten mitään, mutta tarkoitus oli varmaan valvoa muuttujan vaihtumista ilman tarkistusta joka rivin jälkeen.
Aihe on jo aika vanha, joten et voi enää vastata siihen.