Kirjautuminen

Haku

Tehtävät

Koodit: QB64: Värit ja ääkköset

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

Kommentit

Metabolix [08.08.2017 09:48:51]

#

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

Make1971 [08.08.2017 10:59:19]

#

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.

Metabolix [08.08.2017 11:08:43]

#

No muuta! Onhan se hölmöä käyttää harvinaista CP1257-koodisivua, jos suomenkielisen Windowsin oletusvaihtoehto eli CP1252 toimii.

Make1971 [08.08.2017 11:09:42]

#

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

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! ;-)

Kirjoita kommentti

Muista lukea kirjoitusohjeet.
Tietoa sivustosta