so wie ich das sehe, entfernt die nur das präfix "cl". außerdem verwendet sie eine liste der farben.
hier ein auszug:
Delphi-Quellcode:
resourcestring
clNameBlack = 'Black';
clNameMaroon = 'Maroon';
clNameGreen = 'Green';
...
const
ColorToPretyName: array[0..46] of TIdentMapEntry = (
(Value: clBlack; Name: clNameBlack),
(Value: clMaroon; Name: clNameMaroon),
(Value: clGreen; Name: clNameGreen),
...
procedure TCustomColorBox.ColorCallBack(const AName: String);
var
I, LStart: Integer;
LColor: TColor;
LName: string;
begin
LColor := StringToColor(AName);
if cbPrettyNames in Style then
begin
if not IntToIdent(LColor, LName, ColorToPretyName) then
begin
if Copy(AName, 1, 2) = 'cl' then
LStart := 3
else
LStart := 1;
LName := '';
for I := LStart to Length(AName) do
begin
case AName[I] of
'A'..'Z':
if LName <> '' then
LName := LName + ' ';
end;
LName := LName + AName[I];
end;
end;
end
else
LName := AName;
Items.AddObject(LName, TObject(LColor));
end;