http://http://www.2pascal.com/forum.php?mod=viewthread&tid=1661&highlight=edit%2Bmemo
(****************************************************)
(* *)
(* 编写:爱吃猪头肉 & 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;