'' 白 色'');
Items.Add('' 深 蓝'');
Items.Add('' 青 色'');
Items.Add('' 绿 色'');
Items.Add('' 紫 色'');
Items.Add('' 深 红'');
Items.Add('' 深 黄'');
Items.Add('' 深 灰'');
Items.Add('' 银 色'');
---- // 若 不 需 要 这 么 多 颜 色 可 在 构 件 的items 属 性 中 删 除 不 需 要 的 颜 色
---- end;
---- // 重 载DrawItem 过 程
procedure TColorComboBox.DrawItem
(Index: Integer; Rect: TRect;
State: TOwnerDrawState);
var
TempColor :TColor; // 自 画 颜 色
TempBrushColor :TColor; // 临 时 颜 色
begin // 本 构 件 的 默 认 自 画 设 置
TempBrushColor:=Canvas.Brush.Color;
// 保 存 原 来 的 的 颜 色
Canvas.FillRect(Rect);
if Items[index]='' 黑 色'' then
TempColor := clBlack
else if Items[index]='' 蓝 色'' then
TempColor := clBlue
else if Items[index]='' 蓝 绿'' then
TempColor := clAqua
else if Items[index]='' 鲜 绿'' then
TempColor := clLime
else if Items[index]='' 粉 红'' then
TempColor := clFuchsia
else if Items[index]='' 红 色'' then
TempColor := clRed
else if Items[index]='' 黄 色'' then
TempColor := clYellow
else if Items[index]='' 白 色'' then
TempColor := clWhite
else if Items[index]='' 深 蓝'' then
TempColor := clNavy
else if Items[index]='' 青 色'' then
TempColor := clTeal
else if Items[index]='' 绿 色'' then
TempColor := clGreen
else if Items[index]='' 紫 色'' then
TempColor := clPurple
else if Items[index]='' 深 红'' then
TempColor := clMaroon
else if Items[index]='' 深 黄'' then
TempColor := clOlive
else if Items[index]= '' 深 灰'' then
TempColor := clGray
else if Items[index]='' 银 色'' then
else TempColor := clSilver;
Canvas.Brush.Color:=TempColor;
// 自 画 颜 色 矩 形
Canvas.Rectangle(Rect.Left+4,
Rect.Top+1,
(Rect.Right+Rect.Left) div 3,
Rect.Bottom-1);
Canvas.Brush.Color:=TempBrushColor;
// 显 示 与 颜 色 对 应 的 字 符 串
Canvas.TextOut((Rect.Left+Rect.Right) div 2,
Rect.Top+1,
Items[Index]);
end;
end.
---- 此 控 件 可 以 在 所 有 需 要 颜 色 选 项 的 程 序 中 使 用 而 且 非 常 方 便 和 美 观, 并
且 使 编 程 节 省 很 多 时 间, 增 加 了 程 序 可 靠 性 和 可 读 性。
---- 三、 自 定 义 颜 色 对 话 框 构 件 的 使 用
---- 当 注 册 完 自 定 义 颜 色 构 件 后, 可 以 从Delphi 构 件 模 板 的Sample 页 中 选 择 自 定 义
颜 色 构 件, 和 使 用Delphi 本 身 构 件 没 有 区 别。