收藏 分享(赏)

Delphi XE7 学习笔记.doc

上传人:11xg27ws 文档编号:7806547 上传时间:2019-05-26 格式:DOC 页数:15 大小:589.50KB
下载 相关 举报
Delphi XE7 学习笔记.doc_第1页
第1页 / 共15页
Delphi XE7 学习笔记.doc_第2页
第2页 / 共15页
Delphi XE7 学习笔记.doc_第3页
第3页 / 共15页
Delphi XE7 学习笔记.doc_第4页
第4页 / 共15页
Delphi XE7 学习笔记.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、【转】XE6/XE7 多窗口操作的 Z 轴序列错乱问题解决办法(2014-09-26 08:01:46)xe7 分类: DelphiXE7盒子中的 cywyes 发现这个问题,并给出的答案,转贴过来,学习了!以下为原文:-XE6/XE7 多窗口操作的 Z 轴序列错乱问题解决办法 by cyw(QQ:26890954) 14.9.25-一、问题现象:1、Win32/64MainForm 显示 Form2 显示 Form3 关闭 Form3,MainForm 显示在最前面,遮挡了 Form2。 (理论上:应该是 Form2 在前) 。2、AndroidMainForm 显示 Form2 显示 Fo

2、rm3 关闭 Form3 点击 Form2 上的 TEdit 控件,输入法不会弹出!二、演示步骤:1、在 Form1 上,Form2.Show;2、在 Form2 上,Form3.Show;3、在 Form3 上,Close;4、Android:再点击 Form2 上的 TEdit 控件,输入法不会弹出!Windows:Form1 遮挡了 Form2。三、解决方法(适用于 XE6 和 XE7):修改 FMX.Form.pas 的以下代码:1、function TScreen.NextActiveForm(const OldActiveForm: TCommonCustomForm): TCom

3、monCustomForm;整个函数改为如下:function TScreen.NextActiveForm(const OldActiveForm: TCommonCustomForm): TCommonCustomForm;varI, CurrIndex: integer;beginResult := nil;CurrIndex := IndexFormOfObject(OldActiveForm);(* 总是优先找到 OldActiveForm 的前一个窗口(Z 序列中的下一层). add by cyw 14.9.25 *)I := -1;if CurrIndex 0 thenbegin

4、I := CurrIndex - 1;while (I = 0) and (not FormsI.Visible) do Dec(I);end;if I = -1 then /如果找不到,再依据原来的逻辑,先找 OldActiveForm 的最上层第 1 个窗口可视窗口。(* add over *)beginI := FormCount - 1;while (I = 0) and (I CurrIndex) and (not FormsI.Visible) do Dec(I);if (I CurrIndex) and (not FormsI.Visible) do Inc(I);end;end

5、;if (I CurrIndex) thenbeginResult := FormsI;ActiveForm := Result;end;end;2、procedure TScreen.SetActiveForm(const Value: TCommonCustomForm);整个函数改为如下:procedure TScreen.SetActiveForm(const Value: TCommonCustomForm);varNewActiveForm: TCommonCustomForm;I: Integer;beginif Assigned(Value) thenbeginif not V

6、alue.Released thenbeginI := IndexFormOfObject(Value);if I NewActiveForm) and (not IsParent(FormsI, NewActiveForm) thenFormsI.Deactivate;if not NewActiveForm.Active thenNewActiveForm.Activate;end;endelsebeginfor I := 0 to FormCount - 1 doFormsI.Deactivate;endend;原文地址 后记:2015-04-19,XE8 解决了这个问题。Delphi

7、XE7 学习笔记(二)Android 键盘处理(2014-09-11 09:29:39)转载分类: DelphiXE7XE7 带了 ScrollableFormDemo 例子,演示如何实现输入键盘自适应当前的输入项。实现屏幕上下自动划动,不让输入键盘遮盖住当前正在输入的项。例子在安装目录 X:EmbarcaderoStudio15.0SamplesObject PascalMobile SamplesUser InterfaceScrollableForm编译并运行这个例子,在我的 Note3 上,效果非常好。在测试中,还是发现利用键盘上的隐藏键,隐藏键盘后,不触发 OnVirtualKeyb

8、oardHidden事件,造成界面不能还原,如下图:第二个演示图:可以利用龟山的方法解决。后记:我试着利用 Timer 去触发 OnVirtualKeyboardHidden,结果,应用有崩溃的时候,另外,在恢复屏的内容时,位置也计算不准,最下面的 Edit 在再次弹出 keyBoard 时也没算准,不显示。试着用 backspace 键,系统是正常的,问题的实质就在于 emb 没有处理 keyboard 上的隐藏键。功力有限,精力有限,等 emb 来处理吧!再后记:后记中利用 Timer 的所有问题都解决了!感谢盒子上的 wang_80919,原文在这里,改后的FMX.VirtualKeyb

9、oard.Android.pas 原代码在这里。Delphi XE7 学习笔记(三)多窗体间如何调用(2014-09-12 17:36:10)转载分类: DelphiXE7实作一个项目,一定由多个窗口组成的,对于 Android 来说,如何在 A 窗口中调用另外一个窗口呢?还有一个问题,当在项目中建立多个 Form 时,在 dpr 项目文件中,默认都是自动建立Form 实例的,如果一个项目的 Form 很多,在启动项目时会非常耗时,也就是 Splash 显示完后,会黑屏很长时间,为了解决这个方法,我想,好的办法就是在调用时先判断这个Form 是否已经建立,没有的话,先建立,再显示。这里有一个与

10、 Win32 应用不同的是,Android 不支持 Form.ShowModal 方法,只能使用Form.Show 方法显示一个窗口。以 XE7 带的范例,对他做一下修改,这个例子在目录:C:EmbarcaderoStudio15.0SamplesObject PascalMobile SamplesUser InterfaceForms1.打开项目文件:program Forms;usesSystem.StartUpCopy,FMX.Forms,PortraitForm in PortraitForm.pas PForm,LandscapeForm in LandscapeForm.pas

11、LSForm;$R *.resbeginApplication.Initialize;Application.CreateForm(TPForm, PForm);/Application.CreateForm(TLSForm, LSForm);/把这行去掉,不在运行项目时自动建立Application.Run;end.2.打开 PortraitForm 单元,把调用第二个窗口的代码做下改造:procedure TPForm.FormResize(Sender: TObject);beginif not Assigned(LSForm) then/如果 LSForm 没建立则创建他.LSForm

12、:=TLSForm.Create(Application);if (Height Deployment,打开发布文件窗口,增加要发布的文件。然后设置文件发布的位置 Remote Path,填写为 assetsinternal在代码中取得文件:procedure TForm19.Button1Click(Sender: TObject);varp: string;beginp := System.IOUtils.TPath.Combine(System.IOUtils.TPath.GetDocumentsPath, test.txt);memo1.Lines.LoadFromFile(p);label1.Text:=p;end;执行后,Memo1 会显示 test.txt 的内容。xe6 下运行正常,可惜,xe7 下无法找到这个文件。无为网友说,他的 xe7 正常,真是怪事了!洞主也帮我测试,在他的环境中也正常,说是我的人品问题,郁闷!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报