Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Пропадает цвет Label при запуске программы 
V
    Опции темы
Данкинг
Дата 26.12.2008, 21:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



На форме есть Label. У неё задан любой цвет (к примеру, clMaroon). При запуске же программы цвет у этой Label исчезает, и становится равным цвету того компонента, на котором она лежит (форма, GroupBox и т.п.). Т.е. метка становится вообще невидимой. Кинул на форму для примера LabeledEdit1 - то же самое. В чём может быть дело?! smile 

Это сообщение отредактировал(а) Данкинг - 26.12.2008, 21:28


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Akella
Дата 26.12.2008, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



а transperent, а что за версия Delphi?
PM MAIL   Вверх
Данкинг
Дата 26.12.2008, 21:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



Цитата(Akella @ 26.12.2008,  21:35)
а transperent, а что за версия Delphi?

False, разумеется. D7 и D2006 - одно и то же.

Добавлено через 13 минут и 21 секунду
Проблема решена: выкинул нафиг XpManifest. smile  smile Только как он мог вызвать такой глюк - непонятно...


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
THandle
Дата 26.12.2008, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

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



Данкинг, погуглил сейчас - это действительно какой-то глюк XPManifest'а.
Для компонентов у которых есть свойство ParentBackground - эта проблема решается установкой этого самого свойства в false. А что с TLabel даже и не знаю...
PM   Вверх
Данкинг
Дата 26.12.2008, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



Цитата(THandle @  26.12.2008,  23:04 Найти цитируемый пост)
А что с TLabel даже и не знаю... 

Дык, я с работы прогу домой принёс - там она работала (тоже на XP), а дома перестала, посему я вообще в непонятках был. smile  smile  smile 

Это сообщение отредактировал(а) Данкинг - 26.12.2008, 23:12


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Akella
Дата 26.12.2008, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



А на работе или дома как дело с темами винды обстоит? Включены/отключены?
PM MAIL   Вверх
Данкинг
Дата 26.12.2008, 23:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



Цитата(Akella @  26.12.2008,  23:22 Найти цитируемый пост)
А на работе или дома как дело с темами винды обстоит? Включены/отключены? 

Отключено всё. Причём, на ноуте (с Вистой) та же фигня. smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
THandle
Дата 27.12.2008, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

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



Мои наблюдения:

Стоит Windows XP Pro SP2

При теме "Классический", то есть как в старых Windows цвет изменяется нормально и в designtime и runtime. (Delphi 7, Delphi 2009)
При теме XP - в Delphi 7 цвет Label меняется только в designtime. В Delphi 2009 вообще меняется не хочет. Ни с манифестом, ни без него...

Интересно что это такое... Но видимо что то связано с темами...

PM   Вверх
Данкинг
Дата 27.12.2008, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



Цитата(THandle @  27.12.2008,  10:33 Найти цитируемый пост)
При теме "Классический"

Да, это я туплю. smile На работе как раз "классический" выбран, а дома - обычная тема XP (я её и не менял).


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
AntonN
Дата 27.12.2008, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



угу, вы еще doublebuffered:=true у формы включите, приятно удивитесь всяким GroupBox'ам, черным ламелам и рамкам вокруг кнопок smile

А вообще - если добавлен манифест контролы отрисовываются согласно теме, непонятно почему вызывает такое удивление невозможность смены визуальных св-в...


--------------------
user posted image
PM MAIL WWW   Вверх
Rrader
  Дата 27.12.2008, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Inspired =)
***


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

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



Если интересно, почему так происходит, предлагаю подумать над следующими размышлениями: smile 

В D7 манифест не подключен по умолчанию. Если он не подключен, то ThemesEnabled = False (FNewComCtrls = False) smile 
В D2007-D2009 манифест подключен по умолчанию.

Код конструктора TLabel:
Код

{ TCustomLabel }

constructor TCustomLabel.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  ControlStyle := ControlStyle + [csReplicatable];
  Width := 65;
  Height := 17;
  FAutoSize := True;
  FShowAccelChar := True;
  { The "default" value for the Transparent property depends on
    if you have Themes available and enabled or not. If you have
    ever explicitly set it, that will override the default value. }
  if ThemeServices.ThemesEnabled then
    ControlStyle := ControlStyle - [csOpaque]
  else
    ControlStyle := ControlStyle + [csOpaque];
end;


Теперь код отрисовки:

Код

...
  with Canvas do
  begin
    if not Transparent then
    begin
      Brush.Color := Self.Color;
      Brush.Style := bsSolid;
      FillRect(ClientRect);
    end;
    { Если попадаем сюда - цвет кисти не используется }
    Brush.Style := bsClear;
...
 

При проверке условия 
Код

 if not Transparent then

будет вызван метод
Код

function TCustomLabel.GetTransparent: Boolean;
begin
  Result := not (csOpaque in ControlStyle);
end;

Вот такой замкнутый круг smile

Добавлено @ 12:22
P.S. Предлагаю еще под отладчиком посмотреть, что, где и как

Это сообщение отредактировал(а) Rrader - 27.12.2008, 12:27


--------------------
Let's do this quickly!
Rest in peace, Vit!
PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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