国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

當(dāng)前位置:雨林木風(fēng)下載站 > 技術(shù)開(kāi)發(fā)教程 > 詳細(xì)頁(yè)面

用Delphi完成自定義顏色對(duì)話框及其構(gòu)件

用Delphi完成自定義顏色對(duì)話框及其構(gòu)件

更新時(shí)間:2022-04-29 文章作者:未知 信息來(lái)源:網(wǎng)絡(luò) 閱讀次數(shù):

在 開(kāi) 發(fā) 證 券 分 析 軟 件 中, 經(jīng) 常 要 繪 制 各 種 股 票 的 分 析 曲 線。 為 了 使 得 軟
件 的 功 能 更 加 方 便. 靈 活, 用 戶 希 望 能 夠 按 照 自 己 的 喜 好 自 定 義 各 種 曲 線 的
顏 色。 在 W O R D97 的[ 格 式] 菜 單 下 的 字 體 對(duì) 話 框 中 有 類 似 的 功 能。 當(dāng) 用 戶
單 擊 字 體 對(duì) 話 框 中 的 顏 色 下 拉 框 時(shí), 各 種 顏 色 的 簡(jiǎn) 單 圖 案 和 字 體 的 顏 色 名
稱 一 起 顯 示 出 來(lái), 這 樣 處 理 的 結(jié) 果 顯 然 比 只 提 供 一 個(gè) 裝 有 顏 色 名 稱 的 下 拉
框 效 果 要 好 的 多。

---- 一、 自 定 義 顏 色 對(duì) 話 框 的 實(shí) 現(xiàn)

---- 在Delphi 中, 我 們 可 以 使 用TComboBox 實(shí) 現(xiàn) 類 似 的 功 能。 在TcomboBox 構(gòu) 件 中 有 一
個(gè)Style 屬 性, 決 定TcomboBox 的 顯 示 屬 性。 通 常 可 選 取csDropDown, csSimple, csDropDownList,
csOwnerDrawFixed, csOwnerDrawVariable 等。 其 中 當(dāng) 選 取csOwnerDrawFixed 時(shí) 表 示 創(chuàng) 建 一 個(gè) 自
畫(huà) 下 拉 框, 下 拉 框 的 每 一 項(xiàng) 的 高 度 由ItemHeight 屬 性 決 定。 并 且 必 須 在TcomboBox
的OnDrawItem 事 件 中 響 應(yīng) 自 畫(huà) 過(guò) 程。 OnDrawItem 的 定 義 為:

property OnDrawItem: TDrawItemEvent;
TDrawItemEvent = procedure
(Control: TWinControl; Index: Integer Rect:
TRect; State: TOwnerDrawState) of object;
其 中 的 三 個(gè) 參 數(shù) 的 含 義 為:
Control:   包 含 下 拉 框 的TComboBox
Index: 自 畫(huà) 的 下 拉 框 在
TComboBox 的Items 屬 性 中 的 索 引 號(hào)
Rect: 自 畫(huà) 的 位 置
---- 因 此, 知 道 了 需 要 自 畫(huà) 的 矩 形 的 位 置(Rect 參 數(shù)) 和 在TComboBox 中 的 索 引 號(hào)
(Index 參 數(shù)), 我 們 可 以 使 用TcomboBox 的Canvas 屬 性 在 其 畫(huà) 布 上 自 畫(huà)。

---- 具 體 的 實(shí) 現(xiàn) 過(guò) 程 如 下:

---- 1 . 新 建 一 個(gè) 工 程 文 件, 設(shè) 置 其 默 認(rèn) 窗 體 的 有 關(guān) 屬 性 為:

---- Caption 自 定 義 下 拉 框

---- Name Form1

---- Position poScreenCenter

---- 2 . 在 窗 體 中 放 置 兩 個(gè)TcomboBox 構(gòu) 件, 設(shè) 置 其 屬 性 如 下:

---- Name Style ItemHeight OnDrawItem

---- ColorCombo1 csOwnerDrawFixed 20 ColorComboDrawItem

---- ColorCombo2 csOwnerDrawFixed 30 ColorComboDrawItem

---- 3 . 雙 擊ColorCombo1 和ColorCombo2 的Items 屬 性 旁 的 圓 點(diǎn) 按 紐, 在"String List Editor" 對(duì) 話 框
中 輸 入

---- 黑 色

---- 藍(lán) 色

---- 藍(lán) 綠

---- 鮮 綠

---- 紅 色

---- 黃 色

---- 等 各 種 顏 色 的 名 稱

---- 4 . 在ColorCombo1 的OnDrawItem 事 件 中 加 入 如 下 代 碼

procedure TForm1.ColorComboDrawItem
(Control: TWinControl; Index: Integer;
Rect: TRect; State: OwnerDrawState);
var
TempColor :TColor; // 自 畫(huà) 顏 色
TempBrushColor :TColor; // 臨 時(shí) 顏 色
begin
with (Control as TComboBox) do
// 在Combo 的Canvas 上 自 畫(huà)
begin
TempBrushColor:=Canvas.Brush.Color;
// 保 存 原 來(lái) 的 的 顏 色
Canvas.FillRect(Rect);
case Index of // 根 據(jù)Index 的 不 同,
定 義 不 同 自 畫(huà) 的 顏 色
0: // 黑 色
TempColor:=clBlack;
1: // 藍(lán) 色
TempColor:=clBlue;
2: // 藍(lán) 綠
TempColor:=clAqua;
3: // 鮮 綠
TempColor:=clLime;
4: // 紅 色
TempColor:=clRed;
5: // 黃 色
                           TempColor:=clyellow;
// 可 以 在 此 加 入 對(duì) 其 它 顏 色 的 響 應(yīng)
end;

Canvas.Brush.Color:=TempColor;
// 自 畫(huà) 顏 色 矩 形
Canvas.Rectangle(Rect.Left+4,
Rect.Top+1,
(Rect.Right+Rect.Left) div 3,
Rect.Bottom-1);
Canvas.Brush.Color:=TempBrushColor;
// 顯 示 與 顏 色 對(duì) 應(yīng) 的 字 符 串
Canvas.TextOut((Rect.Left+Rect.Right) div 2,
Rect.Top+1,
Items[Index]);
end;
end;
---- 5 . 保 存, 運(yùn) 行 文 件, 我 們 可 以 看 到 和 W O R D 中 顏 色 下 拉 框 相 同 的 效 果
---- 有 興 趣 的 讀 者, 可 以 在 文 中 所 示 的 位 置 加 入 對(duì) 其 它 顏 色 處 理。

---- 以 上 程 序 在Delphi 3.0,4.0 上 通 過(guò)。

---- 二、 自 定 義 顏 色 對(duì) 話 框 構(gòu) 件 的 編 寫(xiě)

---- 對(duì) 許 多Delphi 程 序 員 來(lái) 說(shuō), 如 何 編 寫(xiě) 自 己 的Delphi 構(gòu) 件 還 是 比 較 陌 生 的, Delphi
構(gòu) 件 實(shí) 際 上 是 從Tcomponent 類 繼 承 發(fā) 展 而 來(lái), 編 寫(xiě) 構(gòu) 件 實(shí) 際 就 是 編 寫(xiě) 特 殊 的
類。 下 面 我 們 就 以 自 定 義 顏 色 對(duì) 話 框 為 例 介 紹 構(gòu) 件 的 編 寫(xiě)。

---- 下 面TColorComboBox 是 從TcomboBox 類 繼 承 來(lái) 的, 當(dāng) 點(diǎn) 擊 右 邊 的 下 拉 箭 頭 時(shí) 彈 出
和 下 拉items 對(duì) 應(yīng) 的 各 種 顏 色 自 畫(huà) 框。

---- 1. 選 中Component 菜 單 項(xiàng) 中 的New Component 選 項(xiàng)。 在Ancestor Type 框 中 選TcomboBox, 在Class
Name 框 中 填 入TColorComboBox, 在Palette Page 框 中 選Samples, 在Unit File Name 框 中 填 入
ColorComboBox.pas, 然 后 點(diǎn) 擊OK 按 鈕。

---- 2. 選 中Component 菜 單 項(xiàng) 中 的Install Component 選 項(xiàng), 點(diǎn) 擊Into new package, 在package name 框 中 寫(xiě)
入 路 徑 和ColorComboDpk.dpk, 點(diǎn) 擊ok, 生 成ColorComboDpk.bpl 文 件。

---- 3. 使 用Tools 菜 單 中 的Image Editor 來(lái) 創(chuàng) 建 編 輯 文 件ColorComBox.dcr, 為T(mén)ColorComboBox 類 建
立 位 圖。

---- 4. 在Create 中 加 入 對(duì) 字 體 大 小 高 度 的 規(guī) 定 及 對(duì) 控 件 的Style 屬 性( 設(shè) 成
csOwnerDrawFixed) 的 規(guī) 定, 在Create 后 執(zhí) 行 的CreateWnd 中 初 始 化 顏 色 的items, 如 果 不 需 要
那 么 多 顏 色 項(xiàng), 可 以 以 后 在 生 成 控 件 的items 屬 性 中 直 接 刪 除 不 需 要 的 顏 色。

---- 5. 在DrawItem 事 件 中 加 入 顏 色 自 畫(huà) 程 序, 此 事 件 在On DrawItem 之 前 發(fā) 生。

---- 實(shí) 現(xiàn) 程 序 如 下:

unit ColorComboBox;
interface
uses
Windows, Messages, SysUtils, Classes,
Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TColorComboBox = class(TComboBox)
private
{ Private declarations }
FOnDrawItem : TDrawItemEvent;
procedure DrawItem(Index: Integer; Rect: TRect;
State: TOwnerDrawState);override;
protected
{ Protected declarations }
public
{ Public declarations }
constructor Create(AOwner : TComponent);override;
procedure CreateWnd;override;
published
{ Published declarations }
property OnDrawItem : TDrawItemEvent
Read FOnDrawItem write FOnDrawItem;
end;
procedure Register;

implementation

procedure Register; // 注 冊(cè) 構(gòu) 件
begin
RegisterComponents('Samples', [TColorComboBox]);
end;

constructor TColorComboBox.Create
(AOwner : TComponent); // 構(gòu) 件 的 初 始 化
begin
inherited Create(AOwner);
Style := csOwnerDrawFixed; // 構(gòu) 件 的 初 始 類 型
ItemHeight := 20;
Font.Size := 10;
end;

procedure TColorComboBox.CreateWnd;
// 顏 色 構(gòu) 件 的Items 屬 性 初 始 化
begin
inherited CreateWnd;
Items.Clear;
Items.Add(' 黑 色');
Items.Add(' 藍(lán) 色');
Items.Add(' 藍(lán) 綠');
Items.Add(' 鮮 綠');
Items.Add(' 粉 紅');
Items.Add(' 紅 色');
Items.Add(' 黃 色');
Items.Add(' 白 色');
Items.Add(' 深 藍(lán)');
Items.Add(' 青 色');
Items.Add(' 綠 色');
Items.Add(' 紫 色');
Items.Add(' 深 紅');
Items.Add(' 深 黃');
Items.Add(' 深 灰');
Items.Add(' 銀 色');
---- // 若 不 需 要 這 么 多 顏 色 可 在 構(gòu) 件 的items 屬 性 中 刪 除 不 需 要 的 顏 色

---- end;

---- // 重 載DrawItem 過(guò) 程

procedure TColorComboBox.DrawItem
(Index: Integer; Rect: TRect;
State: TOwnerDrawState);
var
TempColor :TColor; // 自 畫(huà) 顏 色
TempBrushColor :TColor; // 臨 時(shí) 顏 色
begin // 本 構(gòu) 件 的 默 認(rèn) 自 畫(huà) 設(shè) 置
TempBrushColor:=Canvas.Brush.Color;
// 保 存 原 來(lái) 的 的 顏 色
Canvas.FillRect(Rect);

if Items[index]=' 黑 色' then
TempColor := clBlack
else if Items[index]=' 藍(lán) 色' then
TempColor := clBlue
else if Items[index]=' 藍(lán) 綠' 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]=' 深 藍(lán)' 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;
// 自 畫(huà) 顏 色 矩 形
Canvas.Rectangle(Rect.Left+4,
Rect.Top+1,
(Rect.Right+Rect.Left) div 3,
Rect.Bottom-1);
Canvas.Brush.Color:=TempBrushColor;
// 顯 示 與 顏 色 對(duì) 應(yīng) 的 字 符 串
Canvas.TextOut((Rect.Left+Rect.Right) div 2,
Rect.Top+1,
Items[Index]);
end;
end.
---- 此 控 件 可 以 在 所 有 需 要 顏 色 選 項(xiàng) 的 程 序 中 使 用 而 且 非 常 方 便 和 美 觀, 并
且 使 編 程 節(jié) 省 很 多 時(shí) 間, 增 加 了 程 序 可 靠 性 和 可 讀 性。

---- 三、 自 定 義 顏 色 對(duì) 話 框 構(gòu) 件 的 使 用

---- 當(dāng) 注 冊(cè) 完 自 定 義 顏 色 構(gòu) 件 后, 可 以 從Delphi 構(gòu) 件 模 板 的Sample 頁(yè) 中 選 擇 自 定 義
顏 色 構(gòu) 件, 和 使 用Delphi 本 身 構(gòu) 件 沒(méi) 有 區(qū) 別。

溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

本類教程下載

系統(tǒng)下載排行

国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

  • <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        无吗不卡中文字幕| 国产调教视频一区| 视频一区二区中文字幕| 日韩激情视频网站| 欧美精品三级在线观看| 日韩一级片网址| 精品久久久久久无| 国产精品久久久久久久久免费桃花 | 蜜臀av性久久久久蜜臀av麻豆| 肉丝袜脚交视频一区二区| 欧美日韩国产高清一区二区 | 日韩精品一区二区在线| 中文字幕一区二区三区四区不卡| 亚洲自拍与偷拍| 韩国视频一区二区| 色综合久久99| 久久网站热最新地址| 一区二区三区不卡在线观看| 国内精品伊人久久久久av一坑| 久久一区二区三区四区| 成人h动漫精品一区二区| 欧美无砖砖区免费| 国产夜色精品一区二区av| 国产91对白在线观看九色| 欧美精品电影在线播放| 国产一区二区不卡在线| 91精品国产色综合久久不卡电影| 亚洲三级在线观看| 成人禁用看黄a在线| 性感美女极品91精品| 欧美亚洲一区二区在线观看| 久久99蜜桃精品| 26uuu国产日韩综合| 欧美一a一片一级一片| 国产成人在线影院| 国产亚洲欧美激情| 制服丝袜亚洲播放| 蜜桃av噜噜一区| 亚洲免费在线观看| 91免费版在线看| 综合av第一页| 久久久久久久久久久久电影| 黄色资源网久久资源365| 亚洲色图在线播放| 国产日韩欧美不卡| 成人av动漫网站| 国产精一区二区三区| 国产婷婷色一区二区三区四区| 欧美日韩国产美女| 一本色道**综合亚洲精品蜜桃冫| 国产1区2区3区精品美女| 久88久久88久久久| 欧美极品aⅴ影院| 不卡电影一区二区三区| 国产精品一卡二| 激情综合网av| 玖玖九九国产精品| 欧美a级理论片| 国产色综合久久| 久久精品综合网| 欧美精品一区二区三区视频| 成人三级在线视频| 亚洲影院久久精品| 一区二区三区色| 亚洲乱码精品一二三四区日韩在线| 欧美亚洲综合另类| 在线观看av不卡| 国产一区二区三区免费播放 | 国产精品午夜电影| 欧美在线影院一区二区| 欧亚一区二区三区| 国产精品综合在线视频| 加勒比av一区二区| 国产91精品精华液一区二区三区 | 欧美午夜精品免费| 91精品婷婷国产综合久久竹菊| 91精品国产aⅴ一区二区| 精品免费国产二区三区| 国产色产综合产在线视频| 自拍偷自拍亚洲精品播放| 亚洲bt欧美bt精品777| 美国欧美日韩国产在线播放| 国产盗摄一区二区三区| 99re热视频精品| 国产在线国偷精品免费看| 成人在线视频一区二区| 色噜噜偷拍精品综合在线| 国产高清精品网站| 色综合久久中文综合久久牛| 欧美丰满少妇xxxbbb| 国产亚洲欧美日韩在线一区| 亚洲综合免费观看高清完整版| 日日摸夜夜添夜夜添亚洲女人| 久久99国产乱子伦精品免费| 成人av免费观看| 日韩亚洲国产中文字幕欧美| 国产精品美女久久久久aⅴ国产馆| 亚洲国产精品视频| 亚洲精选视频在线| 捆绑紧缚一区二区三区视频| 97久久超碰国产精品| 日韩一级片网站| 一二三区精品视频| 成人一级片网址| 欧美一二三区精品| 亚洲免费伊人电影| 国产69精品久久久久777| 在线播放/欧美激情| 国产精品国产三级国产三级人妇| 日韩电影一二三区| 秋霞午夜av一区二区三区| 成人国产免费视频| 久久在线观看免费| 免费成人在线影院| 欧美午夜免费电影| 亚洲视频每日更新| 粗大黑人巨茎大战欧美成人| 精品国产乱码久久久久久免费| 图片区小说区区亚洲影院| 欧美亚洲国产一卡| 亚洲精品亚洲人成人网在线播放| 国产成人午夜精品影院观看视频 | 91国产福利在线| 国产精品国产成人国产三级 | 欧美日韩国产不卡| 亚洲码国产岛国毛片在线| 懂色一区二区三区免费观看| 久久人人爽爽爽人久久久| 国内精品伊人久久久久av影院| 日韩免费电影一区| 蜜桃精品视频在线| 日韩精品一区二区三区中文精品| 午夜不卡在线视频| 欧美日韩一级视频| 精品99一区二区| 激情伊人五月天久久综合| 91精品国产欧美一区二区18| 日韩高清欧美激情| 日韩欧美色电影| 国产一区二区伦理| 日本一区二区在线不卡| 高清不卡在线观看av| 国产精品国产精品国产专区不蜜 | 婷婷开心久久网| 欧美午夜影院一区| 亚洲网友自拍偷拍| 欧美精选在线播放| 久久国产精品99久久久久久老狼 | 久久久久久黄色| 不卡视频一二三四| 亚洲激情在线播放| 91精品国产欧美一区二区成人 | 国产一区在线精品| 欧美激情一区不卡| 91麻豆精品秘密| 视频一区视频二区中文| 日韩片之四级片| 国产精品亚洲人在线观看| 中文字幕日韩一区二区| 一本大道久久a久久精二百| 亚洲bt欧美bt精品| 久久久久久久久久久99999| 92国产精品观看| 日本美女一区二区| 国产精品久久网站| 欧美日韩一区三区四区| 国产一区二区三区在线观看精品| 日韩理论片中文av| 91精品国产高清一区二区三区| 高清国产一区二区| 婷婷开心久久网| 国产精品传媒视频| 欧美zozo另类异族| 欧美在线免费视屏| 成人午夜av影视| 日日摸夜夜添夜夜添亚洲女人| 久久久久高清精品| 欧美日韩国产大片| 97成人超碰视| 国产露脸91国语对白| 亚洲国产精品一区二区久久恐怖片 | 国产日产欧美一区二区视频| 成人国产免费视频| 精品一区二区三区不卡| 亚洲综合一二区| 久久久久9999亚洲精品| 欧美日产在线观看| 99精品欧美一区二区三区综合在线| 美女网站在线免费欧美精品| 一区二区三区在线免费| 欧美韩国日本一区| 欧美mv日韩mv| 欧美一区二区三区四区视频| 色狠狠一区二区| 99久久精品免费看国产| 国产伦精一区二区三区| 久久精品国产亚洲高清剧情介绍| 亚洲sss视频在线视频| 亚洲日本va午夜在线电影| 国产偷国产偷精品高清尤物|