Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.09.04;
Скачать: CL | DM;

Вниз

Не понял! Цвета палитры виндовс (типа clBtnShadow и т.д)   Найти похожие ветки 

 
Чайник   (2004-09-18 02:40) [0]

Пытаюсь присвоить свойству моего компонента цвет из палитры Windows, например clBtnShadow - постоянно выдает черный цвет (значение
-2147483632). Любой конкретный цвет вроде clRed воспринимает. В чем дело?
У меня стоит WinXP, но стиль классический. Может здесь собака порылась? А как тогда добраться до цветов системной палитры?


type
TMyComp = class(TCustomControl)
private
  FColorBegin : TColor;
  procedure SetColorBegin(const Value: TColor);
public
  constructor Create(AOwner : TComponent); override;
  destructor Destroy; override;
  procedure Paint; override;
published
  property ColorBegin : TColor read FColorBegin write  SetColorBegin default clWhite;
end;

...

procedure TMyComp.SetColorBegin(const Value: TColor);
begin
IF FColorBegin<>Value Then begin
FColorBegin := Value;
Invalidate;
end;
end;


В процедуре Paint нечто-то вроде:

  Canvas.Brush.Color := RGB(R,G,B);
  Canvas.FillRect(CopyR);


Так вот, если я задаю свойсто этого компонента конкретным цветом

 MyComp1.ColorBegin := clSkyBlue;

 Цвет рисуется SkyBlue, а если clBtnShadow - черный


 
Чайник   (2004-09-18 02:44) [1]

Методом тыка обнаружил:

если задаю цвет как
MyComp1.ColorBegin := GetSysColor(COLOR_3DDKSHADOW);
то работает, а если
MyComp1.ColorBegin := clBtnShadow;
- фиг вам.
Ну и что бы это значило?


 
DiamondShark ©   (2004-09-18 13:33) [2]

Где код, в котором цвет используется при рисовании?


 
Чайник   (2004-09-18 13:45) [3]

> DiamondShark ©   (18.09.04 13:33) [2]
> Где код, в котором цвет используется при рисовании?

 В пэйнте:

 Canvas.Brush.Color := FColorBegin;
 Canvas.Pen.Color := FColorBegin;
 и так далее..


 
Ale}{(is)   (2004-09-26 10:14) [4]

Используй Canvas.Brush.Color := ColorToRGB(FColorBegin); и всё будет нормально...



Страницы: 1 вся ветка

Текущий архив: 2005.09.04;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.035 c
10-1100540687
Cheburek
2004-11-15 20:44
2005.09.04
Правильно передать IStream из DCOM-клиента на DCOM-сервер ?


3-1122087541
Sour
2005-07-23 06:59
2005.09.04
Add all fields программно


14-1123669090
ocean
2005-08-10 14:18
2005.09.04
Надо передохнуть


3-1122436030
rentgen
2005-07-27 07:47
2005.09.04
Номер фильтрованное записи


14-1123743417
Makhanev A.S.
2005-08-11 10:56
2005.09.04
Code Insight и тормоза