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,255Onko 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! ;-)