关于Button的奇怪问题

heidi2002 2002-05-28 10:29:09
各位大虾好,我是delphi新手,现在遇到一个觉得奇怪的问题,希望有人能给与帮助,谢谢了。

我在设置的模态窗体上放置了一个button,如果我静态的将这个button的modalresult
项设置为数字,如设为100,那么运行时如果点击此按钮,模态窗体将关闭,为什么?


另外,对于Tbitbtn按钮,我发现,如果将其KIND属性设置为bkcancel,bkok之类的选项,好像只对模态窗口有效,对非模态窗体无效。(我所谓的有效是指点击ok按钮
就关闭了窗口)本人感觉涉及到了模态与非模态窗体各自的特性,但迷蒙,而且手边
无资料,所以网上求助,谢谢了。
...全文
62 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
短歌如风 2002-05-28
  • 打赏
  • 举报
回复
ModalResult必须设为mrNone,否则就会关闭窗口.
ModalResult中的值就是Form.ShowModal的返回值,以便于调用者可以知道用户是点击的哪一个按扭来关闭窗体的.如果某些按扭不关闭窗口,应把ModalResult设置为mrNone.
lxpbuaa 2002-05-28
  • 打赏
  • 举报
回复
.系统给modalresult定义的值最大是10,设为比10大的数,表示自定义。
点这个按钮,ShowModal返回你定义的数,并且关闭窗口

—————————————————————————————————
MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
毁誉由人,望天上云卷云舒,聚散任风。';
if Not Assigned(I) then
I := TI.Create(Nil);
I.Maxim := MaximStr;
I.Explain := '假如上述代码中出现“OA”、“3D”等字样,改为“=”或者去掉';
I.Desire := '加不加分随你';
—————————————————————————————————


lxpbuaa 2002-05-28
  • 打赏
  • 举报
回复
KIND和modalresult
只是对模态窗口有效,看看这个就知道了:
function ShowModal: Integer; virtual;

—————————————————————————————————
MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
毁誉由人,望天上云卷云舒,聚散任风。';
if Not Assigned(I) then
I := TI.Create(Nil);
I.Maxim := MaximStr;
I.Explain := '假如上述代码中出现“OA”、“3D”等字样,改为“=”或者去掉';
I.Desire := '加不加分随你';
—————————————————————————————————


netlib 2002-05-28
  • 打赏
  • 举报
回复
模态窗口,只要窗口的modalresult有值,就会关闭。
你设了100,就有反回值了,所以就变了。

第二个也一们,你所设的mrcancel、mrok等只对模式窗口起作用,对非模式窗口不起作用。
模式窗口的使用:
if form2.showmodal=mrok then
begin
end else
begin
end;
heidi2002 2002-05-28
  • 打赏
  • 举报
回复
各位,我想结贴,但好像没成功,再试一次
heidi2002 2002-05-28
  • 打赏
  • 举报
回复
谢谢各位的帮助,我已经明白这个问题。
第一次在csdn上提问,得到回答,感觉真好。

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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