Jak k aplikaci přidat nezvyklý font anebo....   zodpovězená otázka

VB.NET, WinForms, Grafika

Jak k aplikaci přidat použitý ne zcela běžný font, anebo ji ošetřit, aby fungovala i na počítači, kde v aplikaci použitý font není?

Ku příkladu Consolas, který jak jsem zjistil, je problém i tohoto fóra. Na počítači, kde font Consolas není, jsou rámečky s ukázkou kódu prázdné a to i zpětně ve starých článcích (asi úpravou stylu pro <pre> v .css).

' zkouška, psáno z PC bez Consolas

Dodatek: rámeček pro kód je prázdný, po odeslání příspěvku byla prázdná stránka jen s nadpisem Nové téma (nebo podobně) - není to problém, o kterém se tu píše?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

CSS styl je nastaven tak, aby se v případě nepřítomnosti fontu Consolas použil Courier New nebo nějaký jiný neproporciální font. I na počítači v práci, kde font Consolas není, mi to fungovalo správně. Mimochodem i tam se mi zobrazuje kód, který jste napsal do toho rámečku.

To, že se po odeslání příspěvku objeví prázdná stránka, by se ale stávat nemělo, večer se na to podívám. Nicméně to není ten problém, o kterém píšeme v aktualitách - zkusil jsem změnit jednu věc, takže nevím, jestli se to ještě bude opakovat. To, že zmiňovaný problém nastal, se pozná tak, že nefunguje stránka příslušného fóra.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Zamlžil jsem původní problém s fontem, tedy v aplikaci z VB .NET. Jak tam se dá nastavit jiný podobný a běžnější font třeba do TextBoxu, aby nedošlo k výjimce při jeho použití?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nejlepší je to ošetřit při instalaci aplikace tak, že příslušný font nakopírujete do složky %Windows%\Fonts. V praxi se většinou nepočítá s tím, že by někdo fonty z této složky odstraňoval.

Pokud ale chcete mít jistotu, nastavujete font v kódu a uzavřete konstrukci normálně do Try...Catch...End Try bloku. Pokud nastane výjimka, provede se kód umístěný za slovem Catch. V tomto případě tam žádný není, takže se ponechají stávající fonty.

        Try
            TextBox1.Font = New Font("Consolas", 10, FontStyle.Regular, GraphicsUnit.Point)
        Catch
        End Try
nahlásit spamnahlásit spam 0 odpovědětodpovědět

Díky, to mě mělo napadnout. Koumal jsem jen nad nastavením vlastnosti ve visuálním návrhu.

(po přidání Consolas se kódy zde zobrazují).

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Zjistil jsem, že výjimka nastává, když je v aplikaci ve vlastnostech zvolen font a styl písma a na počítači, kde aplikace běží, font daného jména je, ale ne soubor pro zvolený styl. Pokud na počítači font daného jména není vůbec, dojde k autom. náhradě písma i bez ošetření možné chyby.

Díky za tip.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback