DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: easeover
今日帖子: 25
在线用户: 8
导航: 论坛 -> 移动应用开发 斑竹:flyers,iamdream  
作者:
男 aknightchen (.) ★☆☆☆☆ -
盒子活跃会员
2019/11/12 12:32:07
标题:
小白分享: Android下, 子窗口中点击"退出"按纽,返回主窗口 浏览:200
加入我的收藏
楼主: 小白分享: Android下, 子窗口中点击"退出"按纽,返回主窗口

--下列代码,如有问题或释放不完全地方, 烦请指正.
--如有更好方法, 也烦请指点,非常感谢

主窗口form1: 放一个Timer1 , 一个按纽
Timer1.Enabled:=False;
Timer1.Interval:=100;

var
  Form1: TForm1;

  afreeObjInteger:Integer;  --定义全局变量1
  afreeObj:^TObject;        --定义全局变量2

procedure pFreeObj(var aObj);
begin
  afreeObjInteger:=Integer(@aObj);
  Form1.Timer1.Enabled:=True;   --本来,想用线程的,但好像会报错...最后,还是用Timer
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Timer1.Enabled:=False;

  Integer(afreeObj):=afreeObjInteger;

  if afreeObj^ is TForm then
    (afreeObj^ as TForm).Hide;  --谢谢 tuesdays指点(先隐藏 form,再释放,就不会黑屏卡住)

  afreeObj^.DisposeOf;
  afreeObj^:=nil;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if form2=nil then
    form2:=tform2.create(self);
  form2.show;
end;



--*********

下面是form2

--*********

procedure TForm2.Button1Click(Sender: TObject);
begin
  --退出
  pFreeObj(form2); --要传入FORM2,以便释放form2,并最终将form2设置为nil值
end;

---
上述代码,XE10.3+Android,

--上述代码,如有问题或释放不完全地方, 烦请指正.
--如有更好方法, 也烦请指点,非常感谢
----------------------------------------------
...
作者:
男 sail2000 (小帆工作室) ★☆☆☆☆ -
盒子活跃会员
2019/11/13 10:21:06
1楼: delphi 做app,不都是用 Frame 做吗?
----------------------------------------------
delphi 是兴趣,和工作无关,即使它倒闭。
又不靠它 delphi 吃饭,怕甚?
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v2.1 版权所有 页面执行39.0625毫秒 RSS