求助:if(SettingPara->ShowModal()==mrOk)老出错

Leeheliang 2009-06-18 11:10:25
小弟刚学C++Builder.经常对着书上写点程序。每次用到if(SettingPara->ShowModal()==mrOk)时总出错。看了论坛里好多关于Show(),和ShowModal()的讨论,还是不怎么明白。我程序如下,恳请高手指点指点:
void __fastcall TMyCont::MyCone_SettingClick(TObject *Sender)
{
if(SettingPara->ShowModal()==mrOk) // A
{
Opp=1;
mypos=SettingPara->TrackBar1->Position;
youpos=SettingPara->TrackBar2->Position*10;
MyCone_StartC->Enabled=true;//341
}
}
编译没问题,就是运行时在A处出错。我已经在Form SettingPara的快速按钮Button1的 Kind 属性为 bkOK,ModalResult的属性为mrOk.是不是还有那些方面没有设定,应注意哪些问题。谢谢!
...全文
112 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Leeheliang 2009-06-19
  • 打赏
  • 举报
回复
解决了,就如jmg说的,SettingPara的visible属性为false。谢谢各位的帮仔细分析。涨见识了。
nbzip 2009-06-19
  • 打赏
  • 举报
回复
void __fastcall TMyCont::MyCone_SettingClick(TObject *Sender)
{

TSettingPara *SettingPara=new TSettingPara(Application);
if(SettingPara->ShowModal()==mrOk) // A
{
Opp=1;
mypos=SettingPara->TrackBar1->Position;
youpos=SettingPara->TrackBar2->Position*10;
MyCone_StartC->Enabled=true;//341
}
delete SettingPara; //这里删除了,在SettingPara里面只需要关闭就行,不需要删除该类了.
SettingPara=NULL;
}

还有SettingPara界面类因为用SHOWMODAL显示方式,就不能用子窗体,只能用一般窗体.显示地方就选用屏幕中央这样.
我不懂电脑 2009-06-19
  • 打赏
  • 举报
回复
确定这个对话框是否ShowModal了。
draculamx 2009-06-19
  • 打赏
  • 举报
回复
SettingPara->ShowModal()==mrOk

更准确的说,问题应该出在 “SettingPara->ShowModal()”这里。
但是你编译是通过了的,说明你的语法没有问题。
那么,答案只有一个,你的 “SettingPara”应该是一个对话框吧,你应该检查这个对话框是否在程序启动的时候已经被加载,如果没有,你就要手动加载

检查 SettingPara 对话框是否在程序启动的时候加载:
点击菜单:Project--Options,然后选择 Forms 选项卡,在左边的 Auto-create forms 里面找找,看有有没有你的 SettingPara 窗口,如果没有,那它应该出现在右边的 Available forms 里面(如果这个里面也没有,说明你没有把这个窗口添加到你的工程中。。。)
Auto-create forms:表示程序启动的时候会自动加载到内存的窗体
Available forms: 表示这些窗体由用户在程序运行中自己用代码来创建

关于用代码加载窗体到内存,网上很多代码,楼主可以自己去找,就一行而已
jmg 2009-06-19
  • 打赏
  • 举报
回复
SettingPara初始化了没有?
还有SettingPara的visible属性是不是false?
ccrun.com 2009-06-18
  • 打赏
  • 举报
回复
运行时出错? 是SettingPara对象为NULL吧?你能保证这个对象已经成功初始化了吗?
源码链接: https://pan.quark.cn/s/1889b1ebf6bc ### Linux环境下Vivado借助VCS进行仿真的操作指南 #### 一、前言 在数字电路系统设计领域中,FPGA(Field Programmable Gate Array,即现场可编程门阵列)的设计与验证占据着核心地位。伴随着设计复杂程度的增加,高效的仿真验证成为了保障设计正确性的关键环节之一。在Linux操作系统环境中运用Vivado来调用VCS执行仿真操作,不仅能够提升仿真的执行速度,同时也便于进行波形监测,从而大幅度增强设计验证的整体效率。本指南将详尽阐述如何在Linux系统平台上完成这一流程的操作。 #### 二、准备工作阶段 1. **软件部署**: - 验证Vivado软件是否已经正确安装。Vivado是由Xilinx公司开发的一款集成开发环境,专门用于FPGA的设计工作。 - 进行VCS软件的安装。VCS是一款性能卓越的仿真工具,广泛应用于Verilog和SystemVerilog语言代码的仿真测试。为了更好地支持混合语言环境下的仿真,建议采用VCS-MX版本。 2. **权限配置**: - Linux系统的权限管理机制较为严格,尤其是针对普通用户的权限限制较为严格。因此,在启动Vivado调用VCS仿真之前,必须确保所有必要的权限都已经正确配置。 3. **环境变量设定**: - 配置个人用户目录下的`.bashrc`文件,以便在终端操作时能够顺利加载所需的环境变量。 #### 三、调整个人用户下的.bashrc文件 1. **编辑.bashrc文件**: - 使用`cd`指令进入到个人用户的主目录,通过`ll -la`指令查看当前目录中的所有文件,...

13,872

社区成员

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

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