龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

C++ Buidler 6中需要注意的几个问题(2)

时间:2009-12-22 15:42来源:未知 作者:admin 点击:
分享到:
则运行goto语句时会报错,这给goto语句的使用带来不便,但如果在goto与目标标识之间加上一对花括弧,则可顺利运行: goto EndMark; { int a=1; …… } EndMa

   则运行goto语句时会报错,这给goto语句的使用带来不便,但如果在goto与目标标识之间加上一对花括弧,则可顺利运行:

goto EndMark;

{  int a=1;

……  }

EndMark:;

   C++ Builder将{……}内的变量初始化理解为局部变量的初始化,局部变量的初始化不会对{ }外面的语句有影响。所以适当地使用花括弧,就可以消除C++ Builder对goto语句使用的限制。

  3. 动态创建窗口带来的影响

   动态创建窗口的好处是在不需要该窗口时可以用delete命令释放内存。但是由于窗口是在内存中完成创建和释放,也存在一些问题。如:在新建的Application中建立Form1、Form2和Form3,Form1上设有Button1和Edit1、Memo1,Form2上设有Button21、Button22和Edit2、Memo2,Form3上设有Button3和Edit3、Memo3。Form1->Button1的Click事件中动态创建窗口Form2,并设置Form2->Button21的Click事件显示窗口Form3,且Form1、Form2、Form3分别各有一个Edit1和Memo1,现在试图通过点击Form3上的Button3按钮分别将Edit3和Memo3中的文字赋给Form2的Edit2和Memo2构件,再通过点击Form2上的Button22按钮把Edit2和Memo2中的文字赋给Form1。

  Form1中的函数:

void __fastcall TForm1::Button1Click(TObject *Sender)

{  TForm2 * Form2_N=new TForm2(Form1);

   Form2_N ->ShowModal();

   delete Form2_N;  }

  Form2_N中的函数:

void __fastcall TForm2_N::Button21Click(TObject *Sender)

{  Form3->ShowModal();

}

void __fastcall TForm2_N::Button22Click(TObject *Sender)

{  Form1->Edit1->Text=Form2->Edit2->Text;

   Form1->Memo1->Text=Form2->Memo2->Text;

   this->Close();  }

精彩图集

赞助商链接