问题:当 Memo設定為 ReadOnly = True 後,选取一段文字后,無法有複製的功能。
适用:XE6 Android 系统方法)
修正方法:
请将源码 FMX.Platform.Android.pas复制到自己的工程目录里,再进行修改。
找到TWindowManager.ShowContextMenu函数,删除一行,如下:
TWindowManager.ShowContextMenu(..... 省略 ......
DoShowContextMenu;
<span style="color: #0000ff;">end<span style="color: #000000;">);
<span style="color: #0000ff;">end<span style="color: #000000;">;
<span style="color: #0000ff;">end;
PlatformAndroid.SynchronizeOnUIThread(
</span><span style="color: #0000ff;">procedure</span>
<span style="color: #0000ff;">begin</span>
<span style="color: #0000ff;">if</span> FCopyButton <> <span style="color: #0000ff;">nil</span> <span style="color: #0000ff;">then</span><span style="color: #000000;">
FContextButtonsLayout.addView(FCopyButton);
</span><span style="color: #0000ff;">if</span> FCutButton <> <span style="color: #0000ff;">nil</span> <span style="color: #0000ff;">then</span><span style="color: #000000;">
FContextButtonsLayout.addView(FCutButton);
</span><span style="color: #0000ff;">if</span> FPasteButton <> <span style="color: #0000ff;">nil</span> <span style="color: #0000ff;">then</span><span style="color: #000000;">
FContextButtonsLayout.addView(FPasteButton);
// <span style="color: #0000ff;">if TVirtualKeyboardState.Visible <span style="color: #0000ff;">in VirtualKeyboardAndroid.VirtualKeyboardState <span style="color: #0000ff;">then //<span style="color: #000000;"> 删除这一行DoShowContextMenu;
<span style="color: #0000ff;">end<span style="color: #000000;">);
<span style="color: #0000ff;">end<span style="color: #000000;">;
<span style="color: #0000ff;">end;