当前位置:天才代写 > tutorial > C语言/C++ 教程 > TForm常用能力

TForm常用能力

2017-11-06 08:00 星期一 所属: C语言/C++ 教程 浏览:415

一、让窗口老是在最前面

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;
     }

 

    关键字:

天才代写-代写联系方式