DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: webb123
今日帖子: 1
在线用户: 3
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 yugong23 (yugong23) ▲▲▲▲△ -
普通会员
2016/5/26 1:20:20
标题:
A Delphi XE7 Form bug 浏览:1098
加入我的收藏
楼主:      Delphi XE7 update1 bugs:  (Under FMX environment)


源代码如下:

     program Project1;

     uses
     System.StartUpCopy,
     FMX.Forms,
     Unit1 in 'Unit1.pas' {Form1} ,
     Unit2 in 'Unit2.pas' {Form2} ,
     Unit3 in 'Unit3.pas' {Form3};

    {$R *.res}

    begin

    // I test it using windows 7 and Delphi XE7 fmx

    // This program will freez if you run it like this:
    // 1. click 'To form3' button from Form1--> click 'To form2' button from Form3-->Return back to Form1.
    // 2. Repeat step 1 or click 'To form2' button from Form1

      Application.Initialize;
      Application.CreateForm(TForm1, Form1);
      Application.CreateForm(TForm2, Form2);
      Application.Run;

    end.

     unit Unit1;

      interface

    uses
    System.SysUtils, System.Types, System.UITypes, System.Classes,
    System.Variants,
    FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls;

    type
    TForm1 = class(TForm)
      CornerButton1: TCornerButton;
      CornerButton2: TCornerButton;
      procedure CornerButton1Click(Sender: TObject);
      procedure CornerButton2Click(Sender: TObject);
      procedure FormCreate(Sender: TObject);
     private
      { Private declarations }
     public
      { Public declarations }
     end;

    var
    Form1: TForm1;

    implementation

    uses Unit2, Unit3;

    {$R *.fmx}

     procedure TForm1.CornerButton1Click(Sender: TObject);
     begin
      Application.CreateForm(TForm3, Form3);
      Form3.ShowModal;
      Form3.Release
     end;

     procedure TForm1.CornerButton2Click(Sender: TObject);
     begin
      Form2.ShowModal;

     end;

     procedure TForm1.FormCreate(Sender: TObject);
     begin

      CornerButton1.Text := 'To Form 3';
      CornerButton2.Text := 'To Form 2';

     end;

     end.

     unit Unit2;

     interface

     uses
     System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
     FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs;

    type
     TForm2 = class(TForm)
      procedure FormCreate(Sender: TObject);
      private
      { Private declarations }
     public
      { Public declarations }
     end;

     var
     Form2: TForm2;

     implementation

     {$R *.fmx}

     //          Form2:
     // remember: Uncheck biMinimize and biMaximize from Object Inspector. bisystemMenu is optional

     procedure TForm2.FormCreate(Sender: TObject);
     begin
     Form2.Caption:='Form2:  press Alt+F4 or System Menu to exit this form'; // if you check bisystemMenu from Object Inspector
     end;

     end.

     unit Unit3;

     interface

      uses
     System.SysUtils, System.Types, System.UITypes, System.Classes,
     System.Variants,
     FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls;

     type
     TForm3 = class(TForm)
      CornerButton1: TCornerButton;
      procedure CornerButton1Click(Sender: TObject);
      procedure FormCreate(Sender: TObject);
     private
      { Private declarations }
     public
      { Public declarations }
     end;

     var
     Form3: TForm3;

     implementation

     {$R *.fmx}

     uses Unit2;

     procedure TForm3.CornerButton1Click(Sender: TObject);
     begin
       Form2.ShowModal;
     end;

     procedure TForm3.FormCreate(Sender: TObject);
     begin
      CornerButton1.Text := 'To Form 2';

     end;

     end.
----------------------------------------------
-
作者:
男 yugong23 (yugong23) ▲▲▲▲△ -
普通会员
2016/5/26 1:22:55
1楼: 它会造成死机
----------------------------------------------
-
作者:
男 yugong23 (yugong23) ▲▲▲▲△ -
普通会员
2016/5/26 5:10:29
2楼:  This program will freez if you run it like this:
 1. click 'To form3' button from Form1--> click 'To form2' button 
    from Form3-->Return back to Form1.
 2. Repeat step 1 or click 'To form2' button from Form1
 Conclusion: if a form is not a main form and it is a auto-create form
          and its form.borderIcons.biMaximize or biMiniimize or 
          biSystemMenu is false [or all of them are false]
          if you call it from another form which is not auto-create
          one then you repeat this again or call it from main form
          app will freez.
          But if you call this form from main form once then do the 
          above, every thing will be ok
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行79.10156毫秒 RSS