ShowModal两次,即TFrom A为ShowModal,在单击A中的Button后,TFrom B 也以ShowModal出现

forverlove 2006-06-14 02:23:30
如题
...全文
250 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
forverlove 2006-06-21
  • 打赏
  • 举报
回复
咦,终于改出来了。
原来真是其他代码的问题。
ShowModal没问题,
感谢各位的支持
大大怪老张 2006-06-16
  • 打赏
  • 举报
回复
让我们一起来晕一下……
forverlove 2006-06-16
  • 打赏
  • 举报
回复
我更晕了。
BlueDeepOcean 2006-06-16
  • 打赏
  • 举报
回复
那我晕吧……
forverlove 2006-06-16
  • 打赏
  • 举报
回复
真的吗。
真是郁闷
僵哥 2006-06-16
  • 打赏
  • 举报
回复
这个问题好象是Delphi VCL当中的一个BUG,可以参阅一下Delphi VCL Source
forverlove 2006-06-16
  • 打赏
  • 举报
回复
现在又出错一个
Range Checked ERROR
错误。
forverlove 2006-06-16
  • 打赏
  • 举报
回复
这里的信誉分怎么加??

-----------------------------
可惜还是没找出错来。
不知道怎么办了
forverlove 2006-06-15
  • 打赏
  • 举报
回复
或许吧。
那我还先找找错。
先谢各位了。
forverlove 2006-06-15
  • 打赏
  • 举报
回复
楼上的不要急。
我看明白了。
而且我也试过了。
是没错。但我原先的程序也是这样子用的。
不知道怎么就错了。
TR@SOE 2006-06-15
  • 打赏
  • 举报
回复
恐怕是LZ自己的程序代码有问题。出现的错误是典型的。
BlueDeepOcean 2006-06-15
  • 打赏
  • 举报
回复
拜托你好好看看我的代码,并且好好理解以下它的含义。
我的代码就是实现你说的内容,均采用ShowModal()显示窗体。虽然生成的窗体重叠,但是,窗体生成成功,并不出错。
forverlove 2006-06-15
  • 打赏
  • 举报
回复
晕。。
实在找不出来,
真是烦死 。
forverlove 2006-06-14
  • 打赏
  • 举报
回复

真是奇怪了。
我刚试了下也可以
但是我的一个程序也是这样的。总会出错。
问题是这样的:
如果把A,B,两个都showmodal(),就会出错。
如果只把A,showmodal出来就没出错
不知哪位遇到过
jacky_zuo 2006-06-14
  • 打赏
  • 举报
回复
没有关系啊
我也这样用过啊
forverlove 2006-06-14
  • 打赏
  • 举报
回复
也请拜托看清我的题。
我是说两个窗体都是showmodal出来的。
BlueDeepOcean 2006-06-14
  • 打赏
  • 举报
回复
拜托好好看看我的代码,我的代码表达的不是这个意思,它是根据你的题意完成的。
forverlove 2006-06-14
  • 打赏
  • 举报
回复
但是这样有点问题。
如在TFrom B中的FromClose事件中
Action=caFree;
这样就是把B释放出来(没错吧?)
然后关A也是这样的。但会出错。
BlueDeepOcean 2006-06-14
  • 打赏
  • 举报
回复
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TForm *f = new TForm(this);
TButton *b = new TButton(f);

b->Parent = f;
b->Caption = "Invoke Another Form";
b->Width = 200;

b->OnClick = Button1Click;

f->ShowModal();

}
//---------------------------------------------------------------------------
lurel 2006-06-14
  • 打赏
  • 举报
回复
直接ShowModal()就可以了,因为能操作的只是当前窗口.如果第一个ShowModal,第二个Show,就可以都操作了。
加载更多回复(6)
附录:源程序 //-------------------主窗体 查询与浏览--------------------------------------- #include #pragma hdrstop #include "Unit1.h" #include "Unit2.h" #include "Unit3.h" #include "Unit4.h" #include "Unit5.h" #include "Unit6.h" #pragma package(smart_init) #pragma resource "*.dfm" TFmain *Fmain; bool onshow=false; __fastcall TFmain::TFmain(TComponent* Owner) : TForm(Owner) { } void __fastcall TFmain::N5Click(TObject *Sender) { Close();//退出程序 } void __fastcall TFmain::SpeedButton3Click(TObject *Sender) { DataModule3->ADOQuery1->First() ; StatusBar1->Panels->Items[0]->Text="数据指向第一个"; } void __fastcall TFmain::SpeedButton1Click(TObject *Sender) { DataModule3->ADOQuery1->Prior() ; StatusBar1->Panels->Items[0]->Text="数据指向上一个"; } void __fastcall TFmain::SpeedButton2Click(TObject *Sender) { DataModule3->ADOQuery1->Next() ; StatusBar1->Panels->Items[0]->Text="数据指向下一个"; } void __fastcall TFmain::SpeedButton4Click(TObject *Sender) { DataModule3->ADOQuery1->Last() ; StatusBar1->Panels->Items[0]->Text="数据指向最后"; } void __fastcall TFmain::Button2Click(TObject *Sender) { //添加新的数据 Fadd->Caption="添加数据"; DataModule3->ADOQuery1->Append() ; Fadd->ShowModal() ; } void __fastcall TFmain::FormClose(TObject *Sender, TCloseAction &Action) { //对退出程序做确认处理 if(MessageBox(this->Handle,"确定要退出吗?","提示",MB_YESNO+MB_ICONQUESTION) == IDNO) Action=caNone; } void __fastcall TFmain::N10Click(TObject *Sender) { AboutBox->ShowModal() ; //显示关于对话框 } void __fastcall TFmain::Button4Click(TObject *Sender) { //以下为查找语句 AnsiString sql; if(Edit1->Text=="")return; if( ComboBox1->Text =="精确")sql=" ='"+Edit1->Text+"';"; else sql=" like '%"+Edit1->Text+"%';"; sql="select * from renshi where "+ComboBox2->Text+sql; StatusBar1->Panels->Items[0]->Text=sql; DataModule3->ADOQuery1->Active =false; DataModule3->ADOQuery1->SQL->Clear(); DataModule3->ADOQuery1->SQL->Add(sql); DataModule3->ADOQuery1->Active =true; if(DataModule3->ADOQuery1->RecordCount==0) StatusBar1->Panels->Items[1]->Text="无符合条件数据"; else StatusBar1->Panels->Items[1]->Text="符合条件数据个数为:"+IntToStr(DataModule3->ADOQuery1->RecordCount); } void __fastcall TFmain::Button6Click(TObject *Sender) { //以下为显示所有数据 AnsiString sql; sql="select * from renshi;"; StatusBar1->Panels->Items[0]->Text="显示全部数据"; DataModule3->ADOQuery1->Active =false; DataModule3->ADOQuery1->SQL->Clear(); DataModule3->ADOQuery1->SQL->Add(sql); DataModule3->ADOQuery1->Active =true; if(DataModule3->ADOQuery1->RecordCount==0) StatusBar1->Panels->Items[1]->Text="无符合条件数据"; else StatusBar1->Panels->Items[1]->Text="数据总量为:"+IntToStr(DataModule3->ADOQuery1->RecordCount); } void __fastcall TFmain::Button1Click(TObject *Sender) { //刷新显示 DataModule3->ADOQuery1->Active =false; DataModule3->ADOQuery1->Active =true; } void __fastcall TFmain::N9Click(TObject *Sender) { //帮助内容 ShowMessage("\ 大家好,虽然只是一个简单的程序但是也要写帮助。\n\ 简单的操作如下:\n\ 一、打开程序。\n\ 二、可以进行数据的添加、删除、浏览、查找\n\ 三、关闭。\n\ 谢谢使用!\n\ "); } void __fastcall TFmain::Button3Click(TObject *Sender) { //数据删除操作 AnsiString printstr="确定删除编号为"+DataModule3->ADOQuery1->FieldByName("编号")->AsString+"的数据吗?"; if(MessageDlg(printstr,mtWarning,TMsgDlgButtons() << mbOK Delete() ; StatusBar1->Panels->Items[0]->Text="数据已经删除"; } } void __fastcall TFmain::N3Click(TObject *Sender) { //更改显示字体 if(FontDialog1->Execute())Fmain->Font=FontDialog1->Font; } void __fastcall TFmain::N12Click(TObject *Sender) { //更改窗体颜色 if(ColorDialog1->Execute()) { Fmain->Color=ColorDialog1->Color;//主窗体 Fadd->Color=ColorDialog1->Color; //添加、修改窗体 } } void __fastcall TFmain::N13Click(TObject *Sender) { //更改数据域颜色 if(ColorDialog1->Execute()) DBGrid1->Color=ColorDialog1->Color; } void __fastcall TFmain::N11Click(TObject *Sender) { Fshow->QuickRep1->Preview();//打印数据 } void __fastcall TFmain::Button5Click(TObject *Sender) { Fadd->Caption="修改数据"; Fadd->ShowModal() ; //修改数据 } void __fastcall TFmain::FormShow(TObject *Sender) { if(onshow==false) { Fwelcome->ShowModal() ; onshow=true; return; } } //-------------------------------------------------------------------------- //------------系统封面------------------------------------------------------ #include #pragma hdrstop #include "Unit2.h" #include "Unit1.h" #pragma package(smart_init) #pragma resource "*.dfm" TFwelcome *Fwelcome; int logintime=15; //进入系统等待时间X秒 __fastcall TFwelcome::TFwelcome(TComponent* Owner) : TForm(Owner) { } void __fastcall TFwelcome::Timer1Timer(TObject *Sender) { if(logintime==0){ Timer1->Enabled=false; Close(); } logintime--; SpeedButton1->Caption ="进入("+IntToStr(logintime)+")"; } void __fastcall TFwelcome::SpeedButton2Click(TObject *Sender) { Application->Terminate() ; } void __fastcall TFwelcome::SpeedButton1Click(TObject *Sender) { logintime=15; Timer1->Enabled=false; Close(); } //-------------------------------------------------------------------------- //---------------------数据修改窗体----------------------------------------- #include #pragma hdrstop #include "Unit4.h" #include "Unit3.h" #pragma package(smart_init) #pragma resource "*.dfm" TFadd *Fadd; __fastcall TFadd::TFadd(TComponent* Owner) : TForm(Owner) { } void __fastcall TFadd::Button1Click(TObject *Sender) { if(DBEdit1->Text =="")return; DataModule3->ADOQuery1->Refresh() ; Close(); } void __fastcall TFadd::Button2Click(TObject *Sender) { DataModule3->ADOQuery1->Cancel() ; Close(); } void __fastcall TFadd::FormClose(TObject *Sender, TCloseAction &Action) { DataModule3->ADOQuery1->Cancel() ; } //--------------------------------------------------------------------------

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧