麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Delphi > 正文

Delphi中停靠技術的實現

2024-07-16 17:58:51
字體:
來源:轉載
供稿:網友

Delphi中停靠技術的實現:

隨著軟件技術的不斷進步,軟件界面也越來越美觀,操作也越來越方便。

綜觀市面上比較專業的各種軟件,我們會發現大部分都提供窗體停靠的功能,特別象工具軟件,基本上都或多或少有停靠功能。

自然,Delphi也支持停靠,而且她和VCL緊密結合,對于廣大的Delphi程序員來說更是一大福音。讓我們省去枯燥的編碼時間。把注意力集中在核心程序的構思上。

先讓我們來復習一下VCL的結構,在TWinControl類中有一個DockSite屬性(boolean),它的作用是是否允許別的控件停靠在它的上面,在TControl類中有一個DragKind屬性,如果要這個控件能停靠在別的控件上,就把DragKind屬性設成dkDock。就這么簡單,只要設置一下屬性,一個支持停靠的程序就完成了。

當然,上面說的只是最最基本的步驟,有了以上兩步,我們就可以繼續編寫代碼實現更復雜的功能。

一般的支持停靠的程序都可以在主窗口的上下左右停靠,也就是說在主窗口的邊上放上能被停靠的控件比較好(只要是從TWinControl繼承的都行),一般我們都選擇TPanel,為了便于讀者理解,我們可以假定主窗口的左邊可以停靠,所以在主窗口上放一個Align屬性為alLeft的Panel,取名為LeftDockPanel,寬度為0,DockSite屬性為True,當然我們的LeftDockPanel應該是可以改變大小的,所以在它右邊再放一個TSplitter,取名為LeftSplitter,Align屬性為alLeft。接下來就是停靠控件了,一般的程序停靠控件都是窗體,所以我們也建一個窗體,取名叫DockableForm,DragKind屬性設成dkDock,DragMode屬性設為dmAutomatic(自動停靠)。

現在我們可以運行這個程序了,什么?效果不好?停靠的窗體停靠停靠進去后就不見了!

哦,我差點忘了,當停靠窗體停靠時Delphi會產生一些事件,他們分別是

1.OnDockOver(Sender: TObject; Source: TDragDockObject;

X, Y: Integer; State: TDragState; var Accept: Boolean);

2.OnDockDrop(Sender: TObject; Source: TDragDockObject;

X, Y: Integer);

3.OnGetSiteInfo(Sender: TObject; DockClient: TControl;

var InfluenceRect: TRect; MousePos: TPoint; var CanDock: Boolean);

4.OnStartDock(Sender: TObject;

var DragObject: TDragDockObject);

5.OnEndDock(Sender, Target: TObject; X, Y: Integer);

6.OnUnDock(Sender: TObject; Client: TControl;

NewTarget: TWinControl; var Allow: Boolean);

哇,這么多,別急,讓我細細道來:

先讓我們來看看第一個事件

OnDockOver是在停靠控件(DockableForm)掠過被停靠控件(LeftDockPanel)時觸發的。Source包含了停靠—拖動操作的信息,其中有一個重要的屬性是Control,就是DockableForm,另一個重要的屬性是DockRect,就是停靠的位置;X,Y是鼠標的位置,State的狀態有dsDragEnter, dsDragLeave, dsDragMove,分別表示拖動進入,拖動離開,拖動移動;Accept是是否同意停靠的意思。OnDockOver事件主要作用是控制停靠窗體的預覽位置,下面我們來加入以下代碼:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 一本精品999爽爽久久久 | 欧美69free性videos | 国产精品久久久久久久av | 欧美1区2区 | 中文字幕在线观看网址 | 国产午夜亚洲精品午夜鲁丝片 | 黄色片视频在线观看 | 中文字幕在线观看视频www | 成人性生活视频在线观看 | 毛片网站视频 | 国产亚洲精彩视频 | 91精品久久香蕉国产线看观看 | 免费在线中文字幕 | 亚洲福利在线视频 | 精品国内视频 | 高清国产在线 | 9797色| 羞羞羞网站 | 久草中文网 | 羞羞的视频免费 | 国产亚洲精品久久久久久久久 | 国产日韩三区 | av中文在线观看 | 国产精品美女久久久免费 | 天天躁狠狠躁夜躁2020挡不住 | 亚洲精久久| 18欧美性xxxx极品hd | 轻点插视频 | 91 视频网站 | 黄网站在线免费 | 久久久国产视频 | 欧美一级爱爱 | 久久国产不卡 | 国产高清美女一级毛片久久 | 国产免费激情视频 | 操穴视频 | 国产在线精品一区二区三区 | 成人综合一区二区 | 本站只有精品 | 爽成人777777婷婷 | 国产精品久久久毛片 |