Открытие сокращённого или полного диалога выбора цвета

Материал из DRKB

Открытие сокращённого или полного диалога выбора цвета[править | править код]

{ **** UBPFD *********** by kladovka.net.ru ****
>> Открытие сокращённого или полного диалога выбора цвета

Вид диалога зависит от того, можно ли показать начальный цвет (C : TColor) 
в сокращённом диалоге или нужно раскрывать его полностью. 
Возвращает выбранный пользователем цвет.

Зависимости: Windows, Messages, SysUtils, Classes, DIALOGS;

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);


ID: 01222