unit FixColorDialog;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type
TFixColorDialog = class(TColorDialog)
private
{ Private 宣言 }
function GetColor: TColor;
protected
{ Protected 宣言 }
public
{ Public 宣言 }
published
{ Published 宣言 }
property Color read GetColor;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('Dialogs', [TFixColorDialog]);
end;
function GetTrueColor(Color: TColor): TColor;
begin
Result := Color shr $18;
case Color of
$01..$02:Result := Color;
$80 :Result := ColorToRGB(Color);
else
Result := Color xor (Result shl $18);
end;
end;
{ TFixColorDialog }
function TFixColorDialog.GetColor: TColor;
begin
Result := GetTrueColor(inherited Color);
end;
end.
|