低调看直播体育app软件下载
本篇文章主要介绍了" [修正] Firemonkey Windows & macOS 平台下 Edit & Memo 中文输入后会取消原选取文字的 BUG",主要涉及到方面的内容,对于Delphijrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播感兴趣的同学可以参考一下:
问题:Firemonkey Windows & macOS 平台下 Edit & Memo 中文输入后会取消原选取文字的 BUG适用版本:Delphi 10.1...
问题:Firemonkey Windows & macOS 平台下 Edit & Memo 中文输入后会取消原选取文字的 BUG
适用版本:Delphi 10.1.2 & 10.2.1
修正后效果:
修正代码:
请将 FMX.Edit.Style.pas 复制到自己的工程目录下,再修改如下代码:
procedure TStyledEdit.IMEStateUpdated;
var
CombinedText: string;
begin
CombinedText := FTextService.CombinedText;
FTextLayout.Text := CombinedText;
SetCaretPosition(GetOriginCaretPosition);
Model.SetTextWithoutValidation(CombinedText);
if FPrompt <> nilthen
FPrompt.Visible := CombinedText.IsEmpty;
{+++>}{$IF Defined(IOS) or Defined(ANDROID)}// 加入此行, 修正中文输入后会取消原选取文字的 BUG by Aone (2017.11.17)if Model.SelLength > 0thenbegin
Model.DisableNotify;
try
Model.SelLength := 0;
finally
Model.EnableNotify;
end;
UpdateSelectionPointPositions;
end;
{+++>}{$ENDIF}// 加入此行, 修正中文输入后会取消原选取文字的 BUG by Aone (2017.11.17) LinkObserversValueModified(Self.Observers);
DoChangeTracking;
DoTyping;
end;
请将 FMX.Memo.Style.pas 复制到自己的工程目录下,再修改如下代码:
procedure TStyledMemo.IMEStateUpdated;
...略...
SelectionChanged := FSelected or (FSelStart <> LCaret) or (FSelEnd <> LCaret);
CaretPosition := LCaret;
{+++>}{$IF Defined(IOS) or Defined(ANDROID)}// 加入此行, 修正中文输入后会取消原选取文字的 BUG by Aone (2017.11.17)
FSelStart := LCaret;
FSelected := False;
FSelEnd := FSelStart;
UpdateSelectionInModel;
{+++>}{$ENDIF}// 加入此行, 修正中文输入后会取消原选取文字的 BUG by Aone (2017.11.17)if SelectionChanged then
UpdateSelectionPointPositions;
if TextChanged then
LinkObserversValueModified(Self.Observers);
end;
end;
以上就介绍了 [修正] Firemonkey Windows & macOS 平台下 Edit & Memo 中文输入后会取消原选取文字的 BUG,包括了方面的内容,希望对Delphijrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播有兴趣的朋友有所帮助。
本文网址链接:http://www.codes51.com/article/detail_4501789.html