Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Внутренний шрифт в плагинах/утилитах...

 
Post new topic   Reply to topic    Total Commander Forum Index -> Написание плагинов для Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Maximus



Joined: 07 Apr 2005
Posts: 927
Location: Украина, Кировоградская обл., г. Знаменка

Post (Separately) Posted: Mon Jul 10, 2006 09:59    Post subject: Внутренний шрифт в плагинах/утилитах... Reply with quote

Узнал вот о проблемах отображения шрифтов у забугорных пользователей:
http://www.ghisler.ch/board/viewtopic.php?t=4858
Общий смысл я уловил, но всё равно хотелось бы попросить владеющих английским лучше меня перевести содержимое указанной темы, поскольку это актуально для тех, кто пишет плагины/утилиты с мультиязычным интерфейсом и заботится о соих пользователях :)
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6151
Location: Москва

Post (Separately) Posted: Mon Jul 10, 2006 10:08    Post subject: Reply with quote

Если вкратце: многие используют конкретный фиксированный шрифт в своих диалогах, типа MS Sans Serif. Это плохо тем, что в нём нет многих полезных символов, что мешает локализовывать программу. Предлагается использовать Arial Latin или Tahoma Latin, 8, normal, а ещё лучше - дать пользователю возможность самому выбирать шрифт.
Где-то ещё Clo писал о шрифте MS Shell Dlg, который хорош тем, что сам по себе является "виртуальным", ненастоящим шрифтом, а настраивается через глобальные системные настройки; в результате у пользователя все программы выглядят одинаково (если они, конечно, используют этот шрифт).
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
Maximus



Joined: 07 Apr 2005
Posts: 927
Location: Украина, Кировоградская обл., г. Знаменка

Post (Separately) Posted: Mon Jul 10, 2006 10:14    Post subject: Reply with quote

А во втором сообщении темы. Там о другой проблеме или всё о той же?
_________________
tcPhonebook|AppLoader|Українізація TC|Ultimate Calendar
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6151
Location: Москва

Post (Separately) Posted: Mon Jul 10, 2006 10:44    Post subject: Reply with quote

Там он рассуждает, что можно использовать всякие спец-символы внутри текстовых LNG-файлов (например, писать "кривой" апостроф явно вместо задания его через десятичный код; не указывать бэк-слеш перед внутренними кавычками).
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
Maximus



Joined: 07 Apr 2005
Posts: 927
Location: Украина, Кировоградская обл., г. Знаменка

Post (Separately) Posted: Mon Jul 10, 2006 11:00    Post subject: Reply with quote

Спасибо.
А как же организовать выбор шрифта (как в ТС), чтобы быстро и красиво?
_________________
tcPhonebook|AppLoader|Українізація TC|Ultimate Calendar
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6151
Location: Москва

Post (Separately) Posted: Mon Jul 10, 2006 15:15    Post subject: Reply with quote

Не совсем понял вопрос. К какой части интерфейса относится фраза "как же организовать выбор шрифта"? К собственно диалогу выбора? К кнопочкам для вызова этого диалога? К отображаемому рядом с кнопочкой примеру текста в выбранном шрифта?..
Если первое, то есть стандартная WinAPI-функция ChooseFont для вызова этого самого диалога, а в зависимости от среды программирования есть и разнообразные обёртки для этой функции.
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
Maximus



Joined: 07 Apr 2005
Posts: 927
Location: Украина, Кировоградская обл., г. Знаменка

Post (Separately) Posted: Mon Jul 10, 2006 16:00    Post subject: Reply with quote

Я имел в виду совсем другое. Как разом для всех компонентов формы поменять этот самый шрифт. Но уже справился.
Code:
    fdFont->Font=fmMain->Font;
    if(fdFont->Execute())
    {
        fmMain->Font=fdFont->Font;
        fmMain->Repaint();
    }
Но небольшая проблема всё равно осталась. Панели, ГроупБоксы, СкроллБары, может ещё что-то не перерисовываются. Что делать?
Back to top
View user's profile Send private message
Maximus



Joined: 07 Apr 2005
Posts: 927
Location: Украина, Кировоградская обл., г. Знаменка

Post (Separately) Posted: Thu Jul 13, 2006 10:54    Post subject: Reply with quote

Решил проблему так:
Code:
    fdFont->Font=fmMain->Font;
    if(fdFont->Execute())
    {
        fmMain->Font=fdFont->Font;
        for(int i=0;i<fmMain->ComponentCount;i++)
        {
            TControl *Component=(TControl *)fmMain->Components[i];
            if(Component->HasParent() && !Component->ClassNameIs("TMenuItem"))
                Component->Repaint();
        }
    }
Подразумевается, что у всех компонентов ParentFont==true.
fdFont - это FontDialog; fmMain - это форма.
Возможно кроме TMenuItem в условии придется добавить еще какие-то классы, если они используются и при вызове для них Repaint() вываливается ошибка.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Написание плагинов для Total Commander All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group