Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Fontit kansallisuuksien mukaan? (VB6)

Sivun loppuun

BadSource [26.05.2004 10:29:11]

#

Törmäsin seuraavanlaiseen ongelmaan...

Ohjelmani pitäisi pyöriä eri maiden asetuksilla olevissa koneissa (mm. pisteen ja pilkun ero numeroissa) ja englantilaisilla maa-asetuksilla VB rupeaa itkemään fontin koosta ja muuttaa sen sitten pienimpään mahdolliseen. Tämä tapahtuu useimmiten niiden tekstien kohdalla joissa fonttia on muotoiltu (bold tai italic), muttei ole mikään vakio (tekee saman ohjelman sammumisen yhteydessä näytettävälle formille, jolla on muotoilematonta ja oletusasetuksilla olevaa tekstiä). Käyttämäni fontti on tuo VB:n oletuksena asettama MS Sans Serif, joka ei näköjään ole mikään TrueType-fontti...

Eli siihen kysymykseen. Bugittaako VB:ni vai pitäisikö fontti vaihtaa TrueTypeä tukevaksi, vai missä mennään metsään?

Puhveli [26.05.2004 15:04:57]

#

jos haluat että ohjelmasi kelpaa missä tahansa, niin fonttia ei kannata kovin kauas arialista, serifistä tai times new romanista viedä, koska kaikkia fontteja ei oikein löydy muilta koneilta. kysymystä en täysin ymmärtänyt, mutta luultavasti vb bugittaa, onhan se microsoftin ohjelma :)

Antti Laaksonen [26.05.2004 22:15:48]

#

Itse en ole koskaan moiseen törmännyt, pystyisitkö antamaan esimerkkikoodin tai -formin, jossa tämä ongelma esiintyy?

BadSource [27.05.2004 06:29:17]

#

Tällä hetkellä mulla ei oo paikkaa, johon voisin suoraan laittaa formin kopioitavaksi, mutta ohessa on tuon formin tiedot, jota näytetään poistuttaessa.

Eli testaukseen luo uusi projekti yhdellä formilla, jolle laitat yhden labelin nimeltä lblExit. Nimeä formi frmInfo. Tallenna projekti jonnekkin, avaa projektin frmInfo.frm notepadillä ja korvaa tiedot seuraavilla.

VERSION 5.00
Begin VB.Form frmInfo
   BorderStyle     =   4  'Fixed ToolWindow
   Caption         =   "WatchMan"
   ClientHeight    =   840
   ClientLeft      =   45
   ClientTop       =   285
   ClientWidth     =   4020
   Icon            =   "frmInfo.frx":0000
   LinkTopic       =   "Form1"
   MaxButton       =   0   'False
   MinButton       =   0   'False
   ScaleHeight     =   840
   ScaleWidth      =   4020
   ShowInTaskbar   =   0   'False
   StartUpPosition =   2  'CenterScreen
   Begin VB.Label lblExit
      Alignment       =   2  'Center
      Caption         =   "Meinaat sitten poistua?"
      BeginProperty Font
         Name            =   "MS Sans Serif"
         Size            =   9.75
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   305
      Left            =   240
      TabIndex        =   0
      Top             =   240
      Width           =   3495
   End
End
Attribute VB_Name = "frmInfo"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False

Kun Windowsin (käytössä XP Prof) kansallisuusasetukset muuttaa mille tahansa englantilaiset kansallisuusasetukset täyttäville asetuksille (piste desimaalierottimena) ja avaa projektin uudelleen, tulee seuraava virheilmoitus formia avattaessa:

"Errors during load. Refer to 'C:\Sorsa\TestForm\frmInfo.log' for details".

frmInfo.log ilmoittaa seuraavaa: "Line 22: Property Size in Font had an invalid value."

Labelin tekstinkoko on vaihtunut arvoon 8.

edit: Typoja ja tekstin muotoilua

Edellisen jälkeen opittua: Kokeilin muuttaa fontin koon suoraan arvoon 10 tuolla Notepadissä ja avata sen jälkeen formin. Fontin koko pysyi oikeana, eikä tullut mitään virheilmoituksia. Jos tämän jälkeen fontin tietoja katselee VB:n puolella ja tallentaa muutokset, niin fontin kooksi on on taas muuttunut tuo 9.75 ja virheilmoituksia vastassa.

Virheen syy: "Kotimaisilla asetuksilla" desimaalierottimena tallentuu pilkku eikä piste, mikä olisi järkeen käyvää näin koodaajana. Englantilaisilla asetuksillahan tuo aiheuttaa sen, että fontin kokona yritetään käyttää 9750. Vähällä pieleen...;)

jrantala [27.05.2004 07:43:39]

#

Hyvä tietää ;D

setä [27.05.2004 09:39:43]

#

Win XP Homella ei tuommoista ole havaittavissa. Desimaalierottimeksi tallentuu piste oli kyse Suomen tai Englannin maa-asetuksista. Samoin Notepadilla tehty muutos fonttikokoon tallentui sellaisena myös VB:ssä. Ei virheilmoituksia.

BadSource [27.05.2004 10:12:37]

#

setä kirjoitti:

Win XP Homella ei tuommoista ole havaittavissa. Desimaalierottimeksi tallentuu piste oli kyse Suomen tai Englannin maa-asetuksista. Samoin Notepadilla tehty muutos fonttikokoon tallentui sellaisena myös VB:ssä. Ei virheilmoituksia.

Vaikuttaakohan tuohon VB:n versio ja siihen ajetut Service Packit? Töissä on vain SP3, kun himassa on SP4. Himassa en tota ole havainnut, mutten ole tosin testannutkaan...

setä [27.05.2004 10:48:24]

#

Testasin VB5:llä, jossa on SP3. Kokeilen vielä VB6:lla.
Samaten Win XP Pro ja VB6, ei Service Packejä
Aloin ladata tuohon VB6:een SP5:sta. Mutta toisaalta kannattaako, jos nuo bugit SP:stä johtuu??.
Hei, mistä sä ton SP4:n oot ladannut ?

BadSource [27.05.2004 11:45:12]

#

Töistä lainasin CD:n. Sain uuden koneen kk sitten, mutta nyt ei sitä SP4:n levyä löydy mistään. Ilmeisesti "tallessa" jossain jonkun pöydällä papereiden välissä. Ei kylläkään omalla pöydällä...=)

Ei vaikutusta vaikka päivitin SP6:een. Pakko olla koneessa tai WinXP:ssä vika.

setä [27.05.2004 12:43:12]

#

Päivitin VB6:een SP5:n. Sama juttu. Ei tallennu pilkkua vaan piste. Ei virheilmoituksia fonttikoosta.
Mistäs tuo SP6 sitten löytyy. netissä oli vain SP5 ja VB5:een löytyi SP4 joltain oudolta sivulta (Scott & daves GRIPES )

BadSource [27.05.2004 12:50:41]

#

Tuossa on linkki, josta valita joko koko Visual Studio 6:n päivitys tai sitten vain Visual Basic 6:lle ja Visual SourceSafe 6:lle oma pienempi paketti. Isommassa oli vain se ero, että siinä on Visual C++:n päivitys mukana.

http://msdn.microsoft.com/vstudio/downloads/updates/sp/vs6/sp6/download/default.aspx

Antti Laaksonen [27.05.2004 18:16:48]

#

Minäkään en saanut ongelmaa toistettua, vaan desimaalierotin oli aina piste ja kaikki toimi hyvin. Jos teksti pienenee juuri englanninkielisillä asetuksilla, niin silloin kai tiedostossa täytyisi olla pilkku erottimena. Ilmeneekö ongelma muuten myös käännetyssä EXE-tiedostossa? Siinä lukuja tuskin on tallennettu tekstimuodossa.

BadSource [28.05.2004 06:40:47]

#

Ongelmaa ei ilmene enään EXE-tiedoston kanssa. Kuten sanoit lukuja tuskin tallennetaan tekstimuodossa, joten desimaalit ilmoitetaan pisteellä.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta