Kirjoittaja: Make1971
Kirjoitettu: 06.08.2017 – 08.08.2017
Tagit: grafiikka, koodi näytille, vinkki
Seuraavasta ohjelmasta on sinulle hyötyä, jos tuskailet Qb64:n pitkien ja vaikeasti hahmoteltavien RGB-värikoodien kanssa!
Laitoin alkuun vain 16 kpl päävärejä, eli samat, jotka näkyvät normaalissa SCREEN 12 -tilassa (numeroituna 0–15). Voit itse lisätä lopussa olevaan ".BI"-ohjelmaan keksimiäsi värilyhenteitä ja värikoodeja! ;-)
Bonuksena sisällytin ohjelmaan "ääkköset" eli "ÅÄÖåäö", jotka eivät nykyään Qb64-GL:ssä välttämättä näy oikein! Vanhemmassa SDL-versiossahan ne toimivat ilman ylimääräisiä ohjelmia.
REM ***** QB64GL VÄRIT&ÄÄKKÖSET ***** ' Tämä apuohjelma antaa sinulle 16-VÄRIVAKIOTA SUOMALAISILLA VÄRILYHENTEILLÄ, ' sekä skandinaavisen merkistön (ÄÄKKÖSET), kun näytön fonttina ' (Options/Display/Custom Font) on "cour.ttf" ja kielenä (Options/Language) on ' "CP1252". Muuten "Ää", Öö" ja "Åå" tilalla näkyy jotain ihme mongerrusta! ;-) REM HUOMIO! ".BI" -tiedostot pitää olla Qb64-kansiossa REM ja "'$include:..."-komento vasta REM "SCREEN"-komennon JÄLKEEN fontti-muotoilujen takia! ' näyttötila SCREEN _NEWIMAGE(640, 480, 32) ' PERINTEINEN TYYLI: LOCATE 5, 2 COLOR _RGB32(255, 255, 0): PRINT " NÄKYYKÖ tämä VÄRI oikein, entä myös KIRJOITUS?" COLOR _RGB32(63, 63, 255): PRINT " NÄKYYKÖ tämä VÄRI oikein, entä myös KIRJOITUS?" COLOR _RGB32(189, 0, 0): PRINT " NÄKYYKÖ tämä VÄRI oikein, entä myös KIRJOITUS?" ' ympäröi tekstit erivärisillä laatikoilla LINE (10, 30)-(550, 140), _RGB32(255, 255, 0), B LINE (20, 40)-(540, 130), _RGB32(63, 63, 255), B LINE (30, 50)-(530, 120), _RGB32(189, 0, 0), B _DELAY 3 ' MUKAUTETTU TYYLI: ' linkitä tiedot ".BI"-tiedoston kanssa COMMON SHARED Fontti AS STRING, Fonttikoko AS INTEGER ' Aseta kirjasin-tyyli ja -koko. ' Esimerkit: 'Fontti = "arial": Fonttikoko = 14 'Fontti = "lucon": Fonttikoko = 12 Fontti = "cour": Fonttikoko = 16 ' sisällytä tiedot .BI-tiedostosta '$include:'Päävärit&Ääkköset.bi' LOCATE 16, 2 COLOR Kelta: PRINT " NÄKYYKÖ tämä VÄRI oikein, entä myös KIRJOITUS?" COLOR Vsini: PRINT " NÄKYYKÖ tämä VÄRI oikein, entä myös KIRJOITUS?" COLOR Puna: PRINT " NÄKYYKÖ tämä VÄRI oikein, entä myös KIRJOITUS?" LINE (10, 210)-(550, 320), Kelta, B LINE (20, 220)-(540, 310), Vsini, B LINE (30, 230)-(530, 300), Puna, B
REM LAITA TÄMÄ TIEDOSTO QB64-PÄÄKANSIOON!!! REM Kirjoita tiedoston nimeksi "Päävärit&Ääkköset.bi" 'värikoodit CONST Musta = _RGB32(0, 0, 0) CONST Sini = _RGB32(0, 0, 139) CONST Vihr = _RGB32(0, 189, 0) CONST Turk = _RGB32(0, 189, 189) CONST Puna = _RGB32(189, 0, 0) CONST Viol = _RGB32(148, 0, 211) CONST Rusk = _RGB32(210, 105, 30) CONST Vharm = _RGB32(189, 189, 189) CONST Harm = _RGB32(84, 84, 84) CONST Vsini = _RGB32(63, 63, 255) CONST Vvihr = _RGB32(63, 255, 63) CONST Vturk = _RGB32(21, 255, 255) CONST Vpuna = _RGB32(255, 63, 63) CONST Vviol = _RGB32(255, 63, 255) CONST Kelta = _RGB32(255, 255, 0) CONST Valko = _RGB32(255, 255, 255) _FONT _LOADFONT("C:\Windows\Fonts\"+fontti+".ttf", fonttikoko, "MONOSPACE,DONTBLEND") FOR ASCIIcode = 128 TO 255 READ UNIcode _MAPUNICODE UNIcode TO ASCIIcode NEXT ASCIIcode Microsoft_windows_cp1252: 'Windows Western languages with Latin alphabet DATA 8364,0,8218,402,8222,8230,8224,8225,710,8240,352,8249,338,0,381,0 DATA 0,8216,8217,8220,8221,8226,8211,8212,732,8482,353,8250,339,0,382,376 DATA 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175 DATA 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191 DATA 192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207 DATA 208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223 DATA 224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239 DATA 240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255
Onko jokin syy, miksi ääkkösten käyttöön tarvittaisiin CP1257 eikä suomenkielisen Windowsin oletus eli CP1252? Jos ja kun ei ole erityistä syytä, voisit korjata koodiin oikean DATA-osion QB64:n ohjeista.
Koodi on myös sekavan näköistä. Koeta välttää pitkiä rivejä (yli 80 tai 100 merkkiä), ja koeta välttää komentojen ketjuttamista :-merkillä.
Ei se ole sekavaa minun mielestäni ja tottakai tähän ohjelmaan on syy, en kai muuten näkisi vaivaa sellaisen tekemiseen!
Ensinnäkin "cour"-fontti on ainakin minun näytössäni "lucon":ia parempi ja mikä tärkeämpää, minun ohjelmallani "ääkköset" näkyvät myös ohjelman ajon jälkeen "ääkkösinä" eikä mongerruksena! ;-)
Toki tuo CP1252 toimii myös hyvin, sen voin muuttaa.
No muuta! Onhan se hölmöä käyttää harvinaista CP1257-koodisivua, jos suomenkielisen Windowsin oletusvaihtoehto eli CP1252 toimii.
Ongelmaa on käsitelty monesti "qb64.net" sivuilla. Siihen ei vaan oikein ole löytynyt ratkaisua. Itsekin olen sieltä vuosia sitten vinkkejä kysynyt. Ja se on kumma kun vanhemmassa SDL-versiossa "ääkköset" näkyivät ihan oikein! ;-/
Esim linkki:
http://www.qb64.net/forum/index.php?topic=14245.
Lisäys: Ei se ole hölmöä, jos on virolainen kaveri niin kuin minulla! ;-)
Lisäys: Ok! koodisivu muutettu!
Lisäys: Onneksi huomasin että DATA:t rivien alusta olivat kadonneet koodisivun muutoksen yhteydessä! Vähän noloa. Noh, moka korjattu! ;-)