Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Русский язык в c++ builder 
V
    Опции темы
pavelslap
  Дата 1.12.2009, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 27.11.2009

Репутация: нет
Всего: нет



Здравствуйте! Т.к. ваш форум самый лучший, хочу задать ещё один вопрос. 

Я написал программу на билдере 6 дома, а когда открываю её на другом ПК, русские буквы превращаются в знаки вопроса. Как решить эту проблему фонтов? smile 
PM MAIL   Вверх
A5uKa
Дата 1.12.2009, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TЋ♥s F1rȜ iƧ BurȠiƞg
***


Профиль
Группа: Awaiting Authorisation
Сообщений: 1928
Регистрация: 30.8.2008

Репутация: 2
Всего: 16



Цитата

Т.к. ваш форум самый лучший
  smile 

Засунуть фонт в ресурс
PM   Вверх
pavelslap
  Дата 1.12.2009, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 27.11.2009

Репутация: нет
Всего: нет



Цитата(A5uKa @ 1.12.2009,  16:10)
Засунуть фонт в ресурс

Обьясните, пожалуйста чайнику как именно это организовать  smile 
PM MAIL   Вверх
A5uKa
  Дата 1.12.2009, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TЋ♥s F1rȜ iƧ BurȠiƞg
***


Профиль
Группа: Awaiting Authorisation
Сообщений: 1928
Регистрация: 30.8.2008

Репутация: 2
Всего: 16



http://msdn.microsoft.com/en-us/library/ms753303.aspx



Цитата

1) Создаешь файл с названием ну скажем embededfont.rc:
100 RCDATA "имя_файла_шрифта"

Вообще-то, есть спец. тип ресурса FONT, но у меня почему-то на него brcc-шка ругаецца... Может он устарел либо я чего-то не знаю...

2) Компилируешь embededfont.rc с помощью brcc32.exe (должен лежать в папке bin Builder'a/студии):
brcc32.exe embededfont.rc

Должен получиться embededfont.res.

3) Открываешь код проекта, добавляешь туда строки аналогично мне:
#include <vcl.h>
#include "memory"//<= ++ Добавить ++
#pragma hdrstop

#pragma resource "embededfont.res"//<= ++
//---------------------------------------------------------------------------
USEFORM("Unit4.cpp", Form4);
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
    try
    {
        //Добавить от сих...
        const int IDF_EMBEDED = 100;
        HANDLE hEmbededFont = 0;
        DWORD dwFontsInstalled = 0;
        try
        {
            std::auto_ptr<TResourceStream> Resource(new TResourceStream((int)HInstance, IDF_EMBEDED, RT_RCDATA));
            hEmbededFont = AddFontMemResourceEx(Resource->Memory, Resource->Size, 0, &dwFontsInstalled);
        }
        catch(EResNotFound&)
        {
            //просто задушить исключение
        };
        //...и до сих

        Application->Initialize();
        SetApplicationMainFormOnTaskBar(Application, true);
        Application->CreateForm(__classid(TForm4), &Form4);
        Application->Run();

        //в принципе, не обязательно - по завершении приложении система все равно освободит шрифт
        if (hEmbededFont)
            RemoveFontMemResourceEx(hEmbededFont);
    }
    catch (Exception &exception)
    {
        Application->ShowException(&exception);
    }
    catch (...)
    {
        try
        {
            throw Exception("");
        }
        catch (Exception &exception)
        {
            Application->ShowException(&exception);
        }
    }
    return 0;
}



гугли - темы с ресурсами никто не помнит =)

Это сообщение отредактировал(а) A5uKa - 1.12.2009, 20:48
PM   Вверх
SerK
Дата 2.12.2009, 02:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 31.3.2007

Репутация: нет
Всего: нет



Еще может быть причина в следующем: нужно в свойстве Font устанавливать параметр Charset в Russian_Charset. Это делается в Object Inspector.


--------------------
Пусть будет миру хорошо!
PM MAIL   Вверх
dumb
Дата 2.12.2009, 02:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 32
Всего: 158



pavelslap, у всех компонент, умеющих выводить текст, есть свойство Font, в котором есть свойство Charset.
тебе нужно у всех твоих форм/панелей/лэйблов/итд изменить Сharset с DEFAULT_CHARSET на RUSSIAN_CHARSET.
в большой программе это проще всего сделать, поиском-заменой во всех файлах .dfm (проект не должен быть открытым в Builder'е)

edit: о, уже есть такой ответ smile
PM MAIL   Вверх
pavelslap
  Дата 2.12.2009, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 27.11.2009

Репутация: нет
Всего: нет



Всем спасибо большое, разобрался  smile 


M
dumb
если вопрос решен, то жмем "Пометить как решенный" (вверху справа)

PM MAIL   Вверх
NYX
Дата 23.12.2009, 02:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 165
Регистрация: 9.1.2007
Где: Россия, Москва

Репутация: нет
Всего: нет



Может с тем вторым компом что то не так? smile Иногда бывает что при модифицированной винде, приходится кодировку править smile На другом компе тока новая программа каряки выдает?

Это сообщение отредактировал(а) NYX - 23.12.2009, 14:41
--------------------
'long long long' is too long for GC
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0506 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.