Форум: "Компоненты";
Текущий архив: 2005.09.04;
Скачать: [xml.tar.bz2];
ВнизНе понял! Цвета палитры виндовс (типа 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.011 c