TForm的一些技巧
2008-02-23 05:36:43来源:互联网 阅读 ()
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;
}
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇: 在ActiveX控件中检测IE中STOP按钮的按下
下一篇: 制作主窗口显示前的版权窗口
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash