在網上查了許多資料去論述如何在dephi中去實現元件隨視窗大小的變化而變化,然都不盡如人意。有人說用元件的align + anchors 這兩個屬性去控制,但是我用了之後,讓我大驚失色。把anchors屬性下面的四個值都變為true.如果使用者用滑鼠去拖動視窗,那麼視窗上的元件像是中了奪命書生的面目全非腳一樣,基本上就沒有所謂的五官之態。
下面就介紹我的方法,同樣本人的方法也是看了網友們的資料才得以完成的。
本人建議應該把easysite原始檔,還有easysize.d32, easysize.dcu這三個檔案放到你的dephi安裝目錄中的lib目錄下,因為這裡面基本上都是dephi的元件。這個元件預設的是標籤不隨視窗大小的改變而改變,其他的元件隨視窗大小的改變而改變。如果想選擇預設的方式,那麼就不要修改這個原始檔,直接進行安裝這個元件即可。(在這裡注意:不管你以前是否設定label標籤的autosize屬性,他都會變成true)。
2.修改easysize原始檔
(1).在tsingleresizer的構造方法裡,即在 constructor tsingleresizer.create(linkedcontrol, parentform : tcontrol;incfont : boolean;minfs, maxfs : integer)方法裡注釋掉最後幾句:
if fcomponent is tcustomlabel then
fflexwidth := false;
把上面的這幾句話注釋掉
(2).在procedure tsingleresizer.resize(ownerheight, ownerwidth; heightratio, widthratio : double)方法裡在最後幾行裡找到:
if fcomponent is tcustomlabel then
begin
oldautosize := getautosizeproperty(fcomponent);
setautosizeproperty(fcomponent, false);
end;
和if fcomponent is tcustomlabel then
begin
setautosizeproperty(fcomponent, true);
tcustomlabel(fcomponent).refresh;
setautosizeproperty(fcomponent, oldautosize);
end;
把上面的話用大括號注釋掉。
(3)至此,原始檔修改完畢
3.安裝formresizer這個組:
開啟dephi軟體,本人用的是dephi7, 點選 component ->install component ,出現如下介面:
在unit file name 那一行上點選 browse按鈕 載入你剛才你解壓的easysize原始檔,完成之後點選ok按鈕,彈出如下介面:
點選comile按鈕,這樣就在tag標籤頁上出現www 上出現了formresizer元件。
4.在form視窗中加如下**:
(1) procedure tform2.formcreate(sender: tobject);
begin
formresizer1.resizefonts := true; //設定字型是否隨視窗大小的改變而改變。
formresizer1.initializeform;
end;
(2)在form的onresize事件上增加如下**:
procedure tform2.formresize(sender: tobject);
begin
formresizer1.resizeall;
end;
自此,視窗中的元件就可以隨視窗大小的改變而改變了。
delphi實現窗體閃爍功能
以前做視窗閃動時都沒有考慮到讓工作列上的按鈕閃動的問題,現在乙個客戶需要工作列按鈕閃動,發現以前使用的flashwindow不能達到要求了,查詢了一下,找到flashwindowex這個api 如果您建立的應用程式是執行在windows 98或更高版本作業系統上,您可以通過呼叫api函式flashw...
delphi窗體設計
可以通過設定窗體的屬性以及程式設計的方法,限制和控制窗體的變化。如讓窗體不能最小化 最大化.1.通過屬性設定方法 使用form的bordericon屬性,我們可設定窗體是否具有系統選單 bisystemmenu 最小化按鈕 biminimize 最大化按鈕 bimaximize 和幫助按鈕 bihe...
delphi窗體設計
可以通過設定窗體的屬性以及程式設計的方法,限制和控制窗體的變化。如讓窗體不能最小化 最大化.1.通過屬性設定方法 使用form的bordericon屬性,我們可設定窗體是否具有系統選單 bisystemmenu 最小化按鈕 biminimize 最大化按鈕 bimaximize 和幫助按鈕 bihe...