CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  基础类

请教:Form1和Form2之间的切换。 本人菜鸟,请指教!

楼主BluePrincess(忧郁公主)2003-12-01 19:39:07 在 C++ Builder / 基础类 提问

本人要写一个简单的ORACLE查询前台工具。需要Form2来输入有效的用户名口令登陆,而查询界面是Form1。请问,需要分别在  
  USERES("Project5.res");  
  USEFORM("Main.cpp",   Form1);  
  USEFORM("Login.cpp",   Form2);  
  中如何写。另外用户名和密码怎样验证才妥当?谢谢!  
  //-----------------------------------------------------------------------  
  WINAPI   WinMain(HINSTANCE,   HINSTANCE,   LPSTR,   int)  
  {  
                  try  
                  {  
                                    Application->Initialize();  
                                    Application->CreateForm(__classid(TForm2),   &Form2);  
                                    Application->CreateForm(__classid(TForm1),   &Form1);  
                                    Application->Run();  
                  }  
                  catch   (Exception   &exception)  
                  {  
                                    Application->ShowException(&exception);  
                  }  
                  return   0;  
  } 问题点数:10、回复次数:6Top

1 楼zzjzln()回复于 2003-12-01 19:49:14 得分 3

1、把Form2改为可用窗体。通过new   /   delete   动态生成,如果口令正确,则显示主界面。如下  
   
  2、工程文件中添加头文件包含命令   #include   "Form2.h"  
   
   
  3、  
  WINAPI   WinMain(HINSTANCE,   HINSTANCE,   LPSTR,   int)  
  {  
                  try  
                  {  
                                    Application->Initialize();  
                                    TForm2*   pfrm   =   new   TForm2(Application);  
                                    if(pfrm->ShowModal()   !=   mrOK){  
                                            Application->Terminate();    
                                            return   1;  
                                    }      
                                    Application->CreateForm(__classid(TForm1),   &Form1);  
                                    Application->Run();  
                  }  
                  catch   (Exception   &exception)  
                  {  
                                    Application->ShowException(&exception);  
                  }  
                  return   0;  
  }  
  Top

2 楼beyondsky00(凌云飞)回复于 2003-12-01 19:57:27 得分 1

点project里的option  
  然后在form里点掉form1只留登陆窗口form2  
  在form2里的源文件里按ALT+F11   加form1的头文件  
  然后在你的登陆窗口通过验证时通过动态创建窗口form1  
  如加入以下的代码:Tform1*   mainform   =new   Tform1(this);  
                                    mainform->Show();  
  这样应该可以在你登陆正确时就显示form1了  
  另外你可以动态把form2的可视属性设为隐藏或把form1设为关闭  
  至于密码验证我记得在精华里的C++builder收藏里有关于用BDE  
  通过SQL数据库实现的Top

3 楼BluePrincess(忧郁公主)回复于 2003-12-01 20:19:22 得分 0

if(pfrm->ShowModal()   !=   mrOK这个什么意思?  
  另外在登陆界面中应该怎么写?  
  本人菜鸟,望详细指点,谢谢!Top

4 楼beyondsky00(凌云飞)回复于 2003-12-01 20:31:57 得分 1

http://search.csdn.net/expert/topic/55/5504/2003/5/9/1763109.htmTop

5 楼pzoon(杀死日本人)回复于 2003-12-01 20:41:27 得分 1

if(pfrm->ShowModal()   !=   mrOK  
  直接受出Top

6 楼huoniao1976(火鸟1976)回复于 2003-12-02 08:48:59 得分 4

在主窗体的show中加载  
  mima=new   Tmima(this);  
  mima->ShowModal();  
   
  void   __fastcall   Tmima::Edit2Enter(TObject   *Sender)  
  {   TLocateOptions   SeratchOptions;  
      if(Edit1->Text=="")  
        {   Application->MessageBoxA("请输入用户名称","提示",MB_OK);  
            Edit1->SetFocus();  
            return;  
        }  
      if(Table1->Locate("c_username",Edit1->Text,SeratchOptions))  
        {   Edit2->SetFocus();  
            Edit1->Hint=Edit1->Text;  
        }  
      else  
        {   Application->MessageBoxA("非法用户名称","提示",MB_OK);  
            Edit1->SetFocus();  
            return;  
        }  
  }  
   
  void   __fastcall   Tmima::Edit2KeyPress(TObject   *Sender,   char   &Key)  
  {   if   (Key==13)  
        {   if(Edit2->Text!=Table1->FieldByName("c_userpassword")->AsString)  
              {   Application->MessageBoxA("用户口令不正确","提示",MB_OK);  
                  Edit2->SetFocus();  
                  return;  
              }  
            else  
              {   cg=true;  
                  mmname=Edit1->Text;  
                  mima->Close();  
              }  
        }  
  }Top

相关问题

  • 菜鸟提问:如何实现切换的桌面
  • 菜鸟求教,怎么用回车健代替TAB健进行控件切换?
  • 菜鸟程序找错(文本框之间不能自由按tab切换)
  • [菜鸟问题]C#窗口切换时如何关闭原来窗口!!
  • 菜单切换的问题
  • 菜鸟问题:怎样改变对话框中各按钮在Tab键切换时的次序?
  • 菜鸟求助:如何能使页面自动刷新、页面自动切换、自动注销帐号?
  • 【菜鸟提问】如何让按回车让焦点在各个text框中切换(象TAB键一样)?
  • 一个form之间切换的问题。
  • 菜单check 和 uncheck 不能切换。

关键词

  • 口令
  • 验证
  • 界面
  • application
  • 用户
  • 文件
  • pfrm
  • tmima
  • showmodal
  • mima

得分解答快速导航

  • 帖主:BluePrincess
  • zzjzln
  • beyondsky00
  • beyondsky00
  • pzoon
  • huoniao1976

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo