delphi實現窗體組建隨窗體大小改變而改變

2022-03-18 15:43:31 字數 1874 閱讀 8661

在網上查了許多資料去論述如何在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...