Открытие сокращённого или полного диалога выбора цвета
Falk0ner, вс, 06/07/2008 - 15:34.
Открытие сокращённого или полного диалога выбора цвета
{ **** UBPFD *********** by kladovka.net.ru ****
>>
Вид диалога зависит от того, можно ли показать начальный цвет (C : TColor)
в сокращённом диалоге или нужно раскрывать его полностью.
Возвращает выбранный пользователем цвет.
Зависимости: Windows, Messages, SysUtils, Classes, DIALOGS;
Автор: Igor Kovalevsky, <a href="mailto:pc-ambulance@mail.ru">pc-ambulance@mail.ru</a>, Владикавказ
Copyright: Igor Kovalevsky
Дата: 1 июня 2002 г.
********************************************** }
function SelectColor(C : TColor) : TColor;
const
BasicColors = [ $00, $40, $80, $A0, $C0, $FF ];
begin
with TColorDialog.Create(Application) do
begin
Color := C;
if (GetRValue(Color) in BasicColors) and
(GetGValue(Color) in BasicColors) and
(GetBValue(Color) in BasicColors) then
begin
Options := Options - [ cdFullOpen ];
end
else
begin
Options := Options + [ cdFullOpen ];
end;
if Execute then
begin
Result := Color
end
else
begin
Result := clNone;
end;
Free;
end;
end;
Пример использования:
>>
Вид диалога зависит от того, можно ли показать начальный цвет (C : TColor)
в сокращённом диалоге или нужно раскрывать его полностью.
Возвращает выбранный пользователем цвет.
Зависимости: Windows, Messages, SysUtils, Classes, DIALOGS;
Автор: Igor Kovalevsky, <a href="mailto:pc-ambulance@mail.ru">pc-ambulance@mail.ru</a>, Владикавказ
Copyright: Igor Kovalevsky
Дата: 1 июня 2002 г.
********************************************** }
function SelectColor(C : TColor) : TColor;
const
BasicColors = [ $00, $40, $80, $A0, $C0, $FF ];
begin
with TColorDialog.Create(Application) do
begin
Color := C;
if (GetRValue(Color) in BasicColors) and
(GetGValue(Color) in BasicColors) and
(GetBValue(Color) in BasicColors) then
begin
Options := Options - [ cdFullOpen ];
end
else
begin
Options := Options + [ cdFullOpen ];
end;
if Execute then
begin
Result := Color
end
else
begin
Result := clNone;
end;
Free;
end;
end;
Form1.Color := SelectColor( Form1.Color );
Отправить комментарий