日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[CB]TForm应用技巧

發布時間:2025/3/15 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [CB]TForm应用技巧 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、讓窗口總是在最前面

Form 的FormStyle屬性設置為fsStayOnTop值。

二、動態調用窗體Form

在缺省情況下,由File/New Form生成添加入項目文件中的窗體都具有"Auto Create"(自動創建)的特性。即只要程序運行,該窗體就存在于內存中了,不管當前它是否被調用。具有這種特性的窗體一般適用于窗體屬性比較固定、經常被調用的情況。其優點是速度快,缺點是占用內存。在實際程序設計中,會遇見大量類似對話框功能的窗體,它們用于顯示狀態或輸入信息,僅須在程序中調用一下,完成其功能就行了,無需常駐內存。這時可以通過選擇Project/Options/Forms,將"Auto--Create forms "欄中相應的窗體,如Form1,用" >"鍵移動到"Available forms"欄中,并在程序需調用該窗體處,加入下列語句:

TForm1 *myform=new TForm1(this);

myform- >ShowModal();

delete myform;

窗體Form1僅是在需要調用時才調入內存,調用完成后,即用delete清除出內存。這樣可減少程序對內存資源的占用。

三、遍歷窗體控件的方法

要訪問或修改窗體上的控件,方法很簡單,以TEdit為例子:

Edit1- >Text="";

Edit2- >Text="";

但如果窗體上有十來個像Edit1這樣的控件,需要進行相同的初始化,用上面的方法一個一個地進行,豈不麻煩!所以有必要掌握遍歷窗體控件的方法。在介紹該方法之前,讓我們先了解一下窗體Form的Components和Controls 屬性。參見表一。

表一

屬性 類型 說明

ComponentCount Int 目前Form上各類控件的總數

Components TCompont* 目前Form上指向所有控件的數組

ControlCount Int 目前Form上某一子區域上各類控件的總數

Controls TControl* 目前Form上指向某一子區域上所有控件的數組

 

以圖一為例(圖略)說明,Form1 的ComponentCount=6,而Panel1的ControlCount=4.,

其中:

數組 對象

Components[0] Panel1

Components[1] Label1

Components[2] Edit1

Components[3] Label2

Components[4] Edit2

Components[5] Button1

數組 對象

Controls[0] Label1

Controls[1] Edit1

Controls[2] Label2

Controls[3] Edit2

下面這段代碼完成了對Panel1上所有TEdit控件的遍歷初始化。讀者稍加修改,即可對其它控件進行遍歷。這里有一個小技巧,我們把需要進行初始化的控件放置在了一Panel1上,與不需要初始化的控件區分開來,這樣便于編程。

AnsiString namestring="TEdit";

for(int i=1;i< Panel1- > ControlCount;i++)

{

if(Panel1- > Controls[i]- > ClassNameIs(namestring))

{

TEdit *p=dynamic_cast < TEdit* > (Panel1- >Controls[i]);

P- >Text="";

}

}

四、不規則窗口

1.在窗口定義中,加入HRGN hWndRgn;

2.在TForm::OnCreate()消息函數最后,加入下面的代碼:

hWndRgn=::CreateEllipticRgn(0,0,Width,Height);

::SetWindowRgn(hWndRgn,TRUE);

3.設置TForm的屬性為無標題,無邊框。

4.編譯連接應用程序,就可以看到一個橢圓形窗口。

五、MDI Form

1.Application->CreateForm(__classid(Tjjcginput),

&jjcginput);

后不用在使用顯示Form的語句就可以顯示出來了。

2.form的onclose事件必須用下面語句釋放空間:

void

__fastcall TMDIChild::FormClose(TObject *Sender, TCloseAction &Action)

{

Action = caFree;

}

總結

以上是生活随笔為你收集整理的[CB]TForm应用技巧的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。