На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как "свернуть" программу в трей.
3. Как "скрыться" от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как прочитать список файлов, поддиректорий в директории?
5. Как запустить программу/файл?
... (продолжение следует) ...

Вопросы, подробно описанные во встроенной справочной системе Delphi, не несут полезной тематической нагрузки, поэтому будут удаляться.
Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.


Внимание
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...
Модераторы: jack128, D[u]fa, Shaggy, Rouse_
  
> Как изменить свойство TLabel, родители которого форма и панель , ParentFont
    Как-то раньше не заморачивалась с масштабированием компонентов. Но теперь приходится.
    Все компоненты как компоненты, поменяли свойство Font, а Label "выкаблучивается".
    Компонент находится на TPanel, который в свою очередь на TForm. У формы, панели и надписи ParentFont = true. У панели ParentColor отключила.
    Меняю Color у Label, автоматически сбрасывается ParentFont и высота надписи не меняется.
    В объяснениях свойств компонента говорится, что при изменении свойств надписи ParentFont становится = false.
    Вопрос такой: никак нельзя поменять цвет текста? Почему Color привязан к панели? Я же отключила ParentColor. Как только цвет надписи становится черным (как на форме и на панели), сразу работает масшлабирование шрифта. В чем "секрет"?
      Какая версия студии?
        Чего в итоге ты получить-то хочешь? Нарисуй.
            Да, в общем-то, не Делпфи, а Builder 6.0. С форума отправили к вам. Говорят, ваш вопрос.
            Свойства компонент одинаковые.
            А хочу вот что:
            при изменении расширения экрана масштабируются формы. Но меняется и шрифт на компонентах. Сделала настройку шрифтов на все компоненты. Гриды, кнопки и т.п. - высота шрифта меняется. Но цвет шрифта совпадает с цветом по умолчанию на форме.
            У компонента TLabel меняю цвет, например на красный. В этом момент свойство ParentFont автоматически становится = false. Цвет шрифта не меняю, высота надписи меняется, а ParentFont остается = true.
            Я так понимаю, зависит от версии Delphi/Byilder?
              Цитата laifik @
              У компонента TLabel меняю цвет, например на красный. В этом момент свойство ParentFont автоматически становится = false.

              Почему у меня не становится false? Что я делаю не так?

              user posted image


              Запили такую же гифку - чо у тебя там происходит. Шансы на разрешение вопроса увеличатся.
                Цитата laifik @
                В чем "секрет"?

                В том, что ты путаешь TLabel.Color - цвет фона надписи, и TFont.Color - цвет шрифта, т.е. самой надписи. Соотв-но, ParentColor = true задает цвет фона контрола, как у родителя, и изменение Color приводит к автоматическому сбросу ParentColor в false. А ParentFont = true задает все параметры шрифта контрола, как у его родителя, и изменение любого параметра Font у контрола приводит к автоматическому сбросу ParentFont в false.
                  Нашла единственный вариант: Height Font всех компонентов на форме, свойства которых совпадают с родителем, меняю в цикле. Остаются компоненты, у которых свойства Font поменены (жирный шрифт, цвет шрифта, подчеркивание и т.п.). В событии OnShow формы тупо обрабатываю каждый такой компонент, например
                  Цитата
                  Label1->Font->Height = -11;

                  Этот вариант работает. Остается надеяться, что таких компонентов, у которых соскакивает ParentFont на форме будет немного.
                  Все-таки, в справке Builder 6.0 написано, что при изменении свойства Font компонентов автоматически сбрасывается ParentFont. Не хотелось в это верить! :'(
                    Цитата laifik @
                    Все-таки, в справке Builder 6.0 написано, что при изменении свойства Font компонентов автоматически сбрасывается ParentFont. Не хотелось в это верить! :'(

                    Хотелось, не хотелось, но св-во ParentFont одно, а св-в у самого Font "несколько". В противном случае пришлось бы вместо одного ParentFont использовать могучую кучку св-в типа ParentFontColor, ParentFontSize и т.п. (или по крайней мере множество set of соответствующих флагов), которые обычным неискушенным "формошлепам" нафиг не нужны ;)

                    Добавлено
                    PS: Хотя, если речь идет только о масштабировании размера шрифта под системные настройки, то можно было бы обойтись и одним доп.свойством
                      Так может покурить тему DPI aware ? Все должно масштабироваться автоматом
                      1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                      0 пользователей:


                      Рейтинг@Mail.ru
                      [ Script execution time: 0,0263 ]   [ 15 queries used ]   [ Generated: 15.05.24, 05:31 GMT ]