2Pascal-新时代的Pascal

标题: 极个别机器 EDIT MEMO 发生 APP 无响应的问题。 [打印本页]

作者: wang_80919    时间: 2015-6-8 14:50
标题: 极个别机器 EDIT MEMO 发生 APP 无响应的问题。

注意:第二页  第14楼 ,问题已经解决。

https://quality.embarcadero.com/browse/RSP-9720
台电 G17 B5DV 型号的产品。
只要界面有输入框 EDIT MEMO,点上去, APP 很快就无响应了。
具体型号
http://www.teclast.com/zhuanti/G17c4/


大家有没有遇到类似的机器呢。

请写出 机器的具体型号名称。
例如 XXX 品牌 YYY型号 S 版。
最好给出官方产品介绍页。


已经有两个群友,提到此问题,但是他们拒绝透露具体型号。






作者: Value    时间: 2015-6-8 14:52
或许是动画问题Memo1.AniCalculations.BoundsAnimation := False;试试看
作者: wang_80919    时间: 2015-6-8 14:58
Value 发表于 2015-6-8 14:52
或许是动画问题Memo1.AniCalculations.BoundsAnimation := False;试试看

TEdit 没有这个属性。
作者: gaoyong_gy    时间: 2015-6-12 09:45
支持一下老猫的论坛。
作者: wang_80919    时间: 2015-6-16 09:17
目前已知有该问题的机型如下
台电G17、runbo x5、konka康佳BK929
作者: 红鱼儿    时间: 2015-7-7 14:55
本帖最后由 红鱼儿 于 2015-7-7 14:57 编辑

我遇到一款 中兴 ZTE B880,android 5.0.2

这里

作者: wang_80919    时间: 2015-7-7 16:44
红鱼儿 发表于 2015-7-7 14:55
我遇到一款 中兴 ZTE B880,android 5.0.2

这里

仅仅是点 EDIT MEMO 类的发生无响应。
如果点 按钮,还是没问题的。

您这个机器,是这个效果吗?
作者: admin    时间: 2015-7-9 08:31
都是联发科的cpu吧
作者: wang_80919    时间: 2015-7-9 10:03
admin 发表于 2015-7-9 08:31
都是联发科的cpu吧

问题是 同一个型号的 CPU,也有正常的机器。
大概是 CPU + 系统固件 一起影响的。
如果 固件换一种,就没有问题了。

由于没有别的 CPU 参照,无法证明是固件的区别。

但是,我还是怀疑 固件。

固件一般是由 第三方 团队开发的。

出问题的这几种机器,可能是同一个开发者。

他们的 固件,EMB 可能存在兼容问题。
只是他们的产品比较少,所以 EMB 没有测试到。
作者: 红鱼儿    时间: 2015-7-9 20:56
wang_80919 发表于 2015-7-7 16:44
仅仅是点 EDIT MEMO 类的发生无响应。
如果点 按钮,还是没问题的。

是这个效果
作者: 红鱼儿    时间: 2015-7-9 20:57
wang_80919 发表于 2015-7-9 10:03
问题是 同一个型号的 CPU,也有正常的机器。
大概是 CPU + 系统固件 一起影响的。
如果 固件换一种,就没 ...

同感,我觉得就是固件的问题,定制的太严重才产生的不兼容的结果。

作者: wang_80919    时间: 2015-7-10 15:03
红鱼儿 发表于 2015-7-9 20:56
是这个效果

这机器,支持 DEBUG 吗?
我的 台电G17 ,在 DEBUG 还没开始的时候,IDE 就自动退出 DEBUG 模式了。
作者: wang_80919    时间: 2015-7-11 20:52
经过 红鱼儿的调试。虽然当天没找出问题。但是出现一些规律。
我今天修改了一些地方。我的机器 正常了。
作者: wang_80919    时间: 2015-7-11 20:52
15.XE8 修复 个别机器 输入框 EDIT MEMO 无响应 问题

(****************************************************)
(*                         *)
(*     编写:爱吃猪头肉 & Flying Wang     *)
(*      上面的版权声明请不要移除。      *)
(*          2015-07-11          *)
(*                         *)
(*          禁止发布到城通网盘。        *)
(*                         *)
(****************************************************)

首先 感谢 [沈阳]红鱼儿(391879); 的参与测试,找出了问题的可能位置。




找到安装目录下的
FMX.Platform.Android
将他们另存到(复制到)其他目录,例如您的工程目录。

将新复制出的文件加入到您的工程中。

【第一步】
打开 FMX.Platform.Android
添加如下信息
(* ************************************************ *)
(*                         *)
(*  修改:爱吃猪头肉 & Flying Wang 2015-07-11   *)
(*      上面的版权声明请不要移除。      *)
(*                         *)
(*          禁止发布到城通网盘。        *)
(*                         *)
(* ************************************************ *)
这是我的版权,请您尊重下。


【第二步】
找到
procedure TPlatformAndroid.RunOnUIThread(Proc: TThreadProcedure);

将上面的函数修改为
//fix by Flying Wang & 爱吃猪头肉
procedure TPlatformAndroid.RunOnUIThread(Proc: TThreadProcedure);
begin
  //MainActivity.runOnUiThread(TSimpleProcedureRunner.Create(Proc));
  CallInUIThread(
  procedure()
  begin
    Proc;
  end);
end;


找到
procedure TPlatformAndroid.SynchronizeOnUIThread(Proc: TThreadProcedure);

将上面的函数修改为
//fix by Flying Wang & 爱吃猪头肉
procedure TPlatformAndroid.SynchronizeOnUIThread(Proc: TThreadProcedure);
var
  Runner: TSimpleProcedureRunner;
begin
//  CallInUIThread(
//  procedure()
//  begin
//  Runner := TSimpleProcedureRunner.Create(Proc);
//  MainActivity.runOnUiThread(Runner);
//  Runner.Event.WaitFor;
//  end);
  CallInUIThreadAndWaitFinishing(
  procedure()
  begin
    Proc;
  end);
end;



找到
procedure TPlatformAndroid.SetClipboard(Value: TValue);

将上面的函数修改为
//fix by Flying Wang & 爱吃猪头肉
procedure TPlatformAndroid.SetClipboard(Value: TValue);
var
  Setter: TClipboardSetter;
begin
  Setter := TClipboardSetter.Create(Value.ToString);
  CallInUIThread(
  procedure()
  begin
  SharedActivity.runOnUiThread(Setter);
  end);
  Setter.Done.WaitFor(INFINITE);
end;



找到
function TPlatformAndroid.GetClipboard: TValue;

将上面的函数修改为
//fix by Flying Wang & 爱吃猪头肉
function TPlatformAndroid.GetClipboard: TValue;
var
  Getter: TClipboardGetter;
begin
  Getter := TClipboardGetter.Create;
  CallInUIThread(
  procedure()
  begin
  SharedActivity.runOnUiThread(Getter);
  end);
  Getter.Done.WaitFor(INFINITE);
  Result := Getter.Value;
end;
作者: 红鱼儿    时间: 2015-7-13 08:01
我测试也通过!
老猫,你太强了!
作者: 红鱼儿    时间: 2015-7-27 19:01
wang_80919 发表于 2015-7-11 20:52
15.XE8 修复 个别机器 输入框 EDIT MEMO 无响应 问题

(************************************************ ...

没提交到QC,让官方也改一下。

作者: 1583896709    时间: 2015-8-26 11:46
已经采用,感谢老猫!
向Delpher大侠致敬!
作者: 红鱼儿    时间: 2016-8-25 09:40
不知官方何时能修正。





欢迎光临 2Pascal-新时代的Pascal (http://2pascal.com/) Powered by Discuz! X3