![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
в программе есть опция смены фона на любой пользовательский, но ещё в программе на канвас выводится некий текст,
и нужна какая нибудь функция которая бы подбирала цвет текста на канвасе так чтобы его было видно на любом фоне. помогите пожалуйста такую найти ![]() Последний раз редактировалось Snake22, 15.05.2013 в 22:43. |
|
#2
|
||||
|
||||
|
На панели "лежит" TLabel. Контрастность цвета подбирается для неё в зависимости от цвета панели.
Код:
function ContrastColor(Color : TColor) : TColor;
var
R, G, B : Byte;
begin
R := GetRValue(Color);
G := GetGValue(Color);
B := GetBValue(Color);
if (R < 128) then
R := 255
else
R := 0;
if (G < 128) then
G := 255
else
G := 0;
if (B < 128) then
B := 255
else
B := 0;
Result := RGB(R, G, B);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if ColorDialog1.Execute then
begin
Panel1.Color := ColorDialog1.Color;
Label1.Font.Color := ContrastColor(ColorDialog1.Color);
end;
end; |
| Этот пользователь сказал Спасибо angvelem за это полезное сообщение: | ||
Snake22 (16.05.2013)
| ||