koodaaja wrote:Se on puhdasta masokismia, ainakin itselläni se valitti puolet ajasta vääränlaisesta määritelmästä kun joskus kokeilin.
Itse asiassa puhdasta masokismia on olla käyttämättä sitä! Et ehkä vain osaa määrittelyiden syntaksia oikein. Itse olen pitänyt tuota vakiona päällä mitä tahansa koodaillessani nyt ainakin vuoden-pari, eikä paluuta ole. Saa tapettua suurimman osan typo-bugeista alkuunsa, mikä säästää hermoja vähintään 1337%. Tosin tilalle on sitten tullut seuraava riesa: copypaste-bugit.
Force Variable Declaration-asetus päällä koodia kirjoitetaan yksinkertaisesti niin, että aina kun jossain käytetään uutta muuttujaa (sisälsipä se minkälaista dataa tahansa) lisätään edeltävälle riville sopiva määrittely:
Code: Select all
//Tämän koodin pitäisi mennä kääntäjästä läpi myös, kun Force Variable Declaration on päällä, mikäli en ole kauheasti typoillut.
Type MUN_TYYPPI
Field jokuKuva As Integer
EndType
Dim jokuKokonaisluku As Integer
Dim pii As Float
Dim polku As String
jokuKokonaisluku = 5
pii = 3.1415926535897932 //Ja pilkunviilaajat älkööt vaivautuko - tiedän että CB:ssä on sisäänrakennettu vakio pii. Loppui vain mielikuvitus kesken.
polku = "\Media\guy.bmp"
Dim mun.MUN_TYYPPI
mun = New(MUN_TYYPPI)
mun\jokuKuva = Loadimage(polku)
Rotateimage(mun\jokuKuva, jokuKokonaisluku * pii)
Erikoisin lienee TYPE-instanssien määrittely. Itsekin yritin käyttää sitä pitkään väärin ja ihmettelin, miksei homma toimi.
Perudatatyyppien kohdalla voidaan valinnaisesti käyttää myös tyyppisymboleita %,# ja $. Ne voivat olla joko pelkästään määrittelylausekkeissa tai sitten ihan kaikkialla muuttujanimen perässä. Globaaleissa muuttujissa tyyppisymboleita
EI saa käyttää, tai ainakaan itse en ole saanut niitä toimimaan kunnolla.
Kuten näkyy, kuva-kahvat ovat kokonaislukuja, kuten kaikki muutkin eksoottisemmat datatyypit (objektit, muistipalat, äänet, jne.)
Toki määrittelyjä voi kerätä yhteen konteksteittain esimerkiksi ohjelman alkuun, loopin alkua edeltävälle riville tai funktion alkuun, jolloin koodin luettavuus paranee ja määrittelyistä näkee kootusti ja kätevästi, missä mitäkin muuttujaa käytetään
JA minkä tyyppistä dataa se sisältää.
Force Variable Declarationilla siis ehkäisee paljon ohjelman outoa käyttäytymistä, mm. MAVeja, joita on erityisen ikävä jäljittää.