国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 編程 > Delphi > 正文

在Delphi中編寫控件的基本方法

2019-11-18 18:46:19
字體:
來源:轉載
供稿:網友
在Delphi中編寫控件的基本方法

  作為Delphi程序員,要想進一步提高編程水平就必須掌握控件的編寫方法,本篇文章將通過一個簡單的例子來為初學者介紹編寫控件的一些基本方法和模式。

  這個例子控件叫TLeiLabel,是在TLabel的基礎上增加兩個實用的功能:一是使文字具有立體形狀,二是使文字具有超鏈接屬性。下面就讓我們一步步來實現這些功能。

  一、使文字具有立體形狀
  首先定義類型T3DEffect和屬性Style3D分別如下:

  T3DEffect=(Normal,Raised,Lowered, Shadowed);

  PRoperty Style3D:T3DEffect read FStyle3D write SetStyle3D default Normal;

  再在private中定義變量:“FStyle3D:T3DEffect;”,并設置SetStyle3D()方法如下,這也是寫方法的一般格式:

  procedure TLeiLabel.SetStyle3D(Value: T3DEffect);

   begin

   if FStyle3D <> value then

   begin

   FStyle3D := value;

   invalidate; //表示控件將重畫

   end;

   end;

  另外對于帶陰影的文字還要定義陰影的偏移量ShadeXOffSet和ShadeYOffSet:

  property ShadowXOffSet: integer read FXOffSet write SetFXOffSet default 5;

  property ShadowYOffSet: integer read FYOffSet write SetFYOffSet default -5;

  寫方法SetFXOffSet()、SetFYOffSet()和上面的SetStyle3D()類似。

  要重畫控件一般要重載Paint方法,此處只是重畫文字,我們只需重載DoDrawText方法。

  DoDrawText的聲明放在Protected中:

  procedure DoDrawText(var Rect: TRect; Flags: Longint); override;

  此處DoDrawText()根據四種類型(正常、凸起、凹進和陰影)分別畫出不同的文字。

二、使文字具有超鏈接屬性
  定義一個屬性URL表示要鏈接的網址或Email地址。

  Property URL : String read FURL write SetURL;

  寫方法SetURL如下:

  procedure TLeiLabel.SetURL(Value: String);

  Begin

  if FURL <> Value then FURL := Value ;

  if FURL <> ' then

  Cursor := crHandPoint;

  end;

  當點擊此Label時要打開瀏覽器或收發郵件工具,這便要重載Click方法。

   Procedure Click; Override;

   procedure TLeiLabel.Click;

   var s: string;

   Begin

   Inherited Click;

   if FURL = ' then exit;

   if LowerCase(Copy(FURL,1,7)) = 'http://' then

   s := FURL

   else if Pos('@',FURL) <> 0 Then

   s := 'mailto:' + FURL

   else

   s := 'http://' + FURL;

   ShellExecute(application.Handle, 'open', PChar(s), NIL, NIL, SW_SHOWNORMAL);

   end;

  一般的超鏈接當鼠標移入時文字的顏色發生變化。為此加上屬性HoverColor,表示鼠標移入時文字的顏色。

  Property HoverColor : TColor Read FHoverColor Write SetHoverColor default clRed;

  還要定義兩個接收Windows消息CM_MOUSEENTER和CM_MOUSELEAVE(鼠標移進和移出)的過程:

  Procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;

  Procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;

  Procedure TLeiLabel.CMMouseEnter (Var Message: TMessage);

   begin

   If Enabled and Visible and getParentForm(Self).Active then

   begin

   FFontColor := Font.Color;

  //將文字的顏色保存起來

   Font.Color := FHoverColor;

  //改變文字顏色

   End;

   end;

  Procedure TLeiLabel.CMMouseLeave (Var Message: TMessage);

   begin

   Font.Color:=FFontColor;

  //恢復文字原來的顏色

   end;

  為設置屬性的默認值,我們還需要重載構造Create(),注意,重載構造時必須首先調用祖先類的構造。重載構造Create()的程序如下:

   constructor TLeiLabel.Create(AOwner: TComponent);

   begin

   inherited Create(AOwner);

  //必須首先調用祖先類的構造

   FStyle3D := Normal;

   FXOffSet := 5;

   FYOffSet := -5;

   FHoverColor := clRed;

   end;

  最后,還必須為這個控件加上圖標。我們可以用Delphi中的Image Editor來創建一個24×24的Bitmap位圖,保存為一個DCR文件,文件名必須與控件的Pas文件名相同,位圖名必須與控件名相同且全部大寫。

上一篇:Delphi數據壓縮處理(1)

下一篇:一名Delphi程序員的開發習慣(非技術問題)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
在线视频三区| 在线免费观看黄色片| 777电影在线观看| 国产精品一区二区三区高清在线 | 18av在线播放| 国产精品一区二区三区视频网站| 黄色毛片在线| 午夜视频99| 天堂资源在线中文| 国产高清av| av在线官网| 福利视频在线看| 精品成人一区二区三区免费视频| av免费在线观看网站| 日本在线天堂| 天天操天天曰| 在线视频观看亚洲| 国产乱妇乱子在线播视频播放网站| 丁香视频免费观看| 国产精品爱久久久久久久小说| 国产黄大片在线观看画质优化| 在线视频福利| 国产中文在线| 日韩在线天堂| 国产极品一区二区三区| 美女免费视频黄| 国产精品剧情一区二区在线观看| 在线播放www| √天堂中文在线| 亚洲国产日韩在线人成电影| 99热最新网址| 色吊丝av中文字幕| 国产超碰在线观看| 国产一级免费看| 免费av不卡在线观看| 国产成人综合美国十次| 另类视频在线| 日本高清不卡中文字幕| 精品亚洲综合| 国产麻豆精品高清在线播放| 亚洲男人的天堂成人| 国产呻吟对白刺激无套视频在线| 欧美色第一页| av在线资源网| 在线观看免费高清完整| 69久久久久| 97在线超碰| 精品久久亚洲一级α| 国产黄色高清在线| 18激情网站| 中文av在线播放| 在线亚洲精品自拍| 精品成人一区二区三区免费视频| 1区2区视频| 国产精品第八页| 18 激情视频在线| 国产精品人人| 精品176二区| 日本韩国精品一区二区| 中文资源在线官网| 亚洲欧美小说国产图片| 日本一级理论片在线大全| 日本福利午夜视频在线| 丁香综合五月| 精品麻豆一区二区三区 | 国产毛片在线| 国产一二三视频| 国产h在线观看| 欧美性猛交xxxx免费看蜜桃| 黄色av网址在线免费观看| 国产卡一卡二卡三| 国产女王在线**视频 | 九九精品视频在线观看九九| 国产免费黄色| 国产三级视频在线| 樱花草在线观看www| 免费观看久久久久| 国产精品186在线观看在线播放 | 国产福利图片| 日本一卡二卡四卡精品| 国产乱码在线| 69精品视频| 国内自拍视频在线观看| 91在线最新| 国产在线一二三| 中文在线有码| 国产精品伦一区二区三区级视频频| 99re在线视频| 国产激情视频在线观看| 开心婷婷激情五月| 香蕉视频在线看| 国产日产一区二区| 九色视频网站| 在线久久视频| 国产不卡在线| 国产桃色电影在线播放| 亚洲精品aaaa| 2018狠狠干| 69视频在线观看| 91精品专区| 国产精品777一区二区| 丁香视频免费观看| 碰草在线视频| www在线视频| 青青草视频免费在线观看| av在线网页| 亚洲欧美中文字幕在线观看 | 国产网站在线免费观看| 国产在线超碰| 久久综合第一页| 免费电影网站在线视频观看福利| 亚洲色婷婷综合开心网| 四虎成人精品在永久在线观看| 精品剧情v国产在线观看| 92久久精品| 日本高清中文字幕| 国产免费av在线| 国产羞羞视频在线播放| 国产福利在线看| 亚洲综合激情六月婷婷在线观看| 日韩精品免费一区二区| 国内外激情在线| 国产一级免费看| 国产成人精品实拍在线| 99色在线观看| 欧美啪啪精品| 九九热在线视频| 国产精品区一区二| 午夜羞羞小视频在线观看| 超碰在线网址| 国产黄色片在线观看| gogo高清在线播放免费| 综合图区亚洲白拍在线 | 2019天天操夜夜操| 一区二区免费播放| 青青草视频在线免费观看| 国产精品一区二区资源| 在线播放www| 国产一级性片| 天天干天天摸| 国产aⅴ超薄肉色丝袜交足| 天天干天天摸| 国产天堂在线播放视频| 日本不卡影院| 2020亚洲男人天堂| 丁香在线视频| 天天草天天草| 精品女厕厕露p撒尿| 国产尤物视频| 精灵使的剑舞无删减版在线观看| 九九在线视频| 日本欧洲一区| 91麻豆福利| 中文字幕在线视频免费观看| www免费在线观看| 精品51国产黑色丝袜高跟鞋| 国产一区二区三区福利| 五月天婷婷基地| 麻豆国产在线播放| 亚洲欧洲成人| 亚洲成人国产综合| 99在线免费视频| 国产黄色网页| 国产超级va在线视频| 最新国产在线| 国产一级片网站| 国产偷窥洗澡视频| 国产亚洲精品自在线观看| 国产精品一区二区三区高清在线| 狠狠干天天爱| 最近免费中文字幕在线第一页 | 99视频资源网| 尤物免费看在线视频| 中文字幕免费在线视频| 国产午夜三区视频在线| 国产精品yjizz视频网一二区| 国产三区四区在线观看| 国产精品白浆视频免费观看| 国产黄在线观看| 亚洲综合激情六月婷婷在线观看 | 2019中文字幕在线电影免费| 18av在线播放| 亚洲成人av在线影院| 国产中文字幕网| 最新天堂资源在线资源| 中文字幕日本在线观看| 18激情网站| 久久er视频| 国产导航在线| 青青免费在线视频| 国产视频三区| 在线三级中文| 国产免费一级| 先锋影音av中文字幕| 国产在线传媒| 在线观看免费高清完整| 丁香视频免费观看| 精品国产免费第一区二区| 久久国产热视频| 亚洲精品影院在线|