diff --git a/src/ce_dfmt.pas b/src/ce_dfmt.pas index d8201997..599e3338 100644 --- a/src/ce_dfmt.pas +++ b/src/ce_dfmt.pas @@ -6,8 +6,9 @@ interface uses Classes, SysUtils, FileUtil, RTTIGrids, Forms, Controls, Graphics, ExtCtrls, - Menus, Buttons, process, ce_widget, ce_interfaces, ce_observer, ce_synmemo, - ce_writableComponent, ce_common, ce_sharedres, PropEdits, ObjectInspector; + Menus, Buttons, process, SynEditKeyCmds, ce_widget, ce_interfaces, ce_observer, + ce_synmemo, ce_writableComponent, ce_common, ce_sharedres, PropEdits, + ObjectInspector; type @@ -301,12 +302,15 @@ begin inp := fDoc.Lines.Text; prc.Input.Write(inp[1], inp.length); prc.CloseInput; - while prc.Running do (*!*); + while prc.Running do + sleep(1); try str := TStringList.Create; processOutputToStrings(prc,str); - fDoc.SelectAll; - fDoc.SelText:= str.Text; + fDoc.ClearAll; + fDoc.InsertTextAtCaret(str.Text); + fDoc.SelStart:= high(integer); + fDoc.ExecuteCommand(ecDeleteLastChar, #0, nil); except fDoc.Lines.Assign(fBackup); end; diff --git a/src/ce_synmemo.pas b/src/ce_synmemo.pas index ef249d88..bc65182a 100644 --- a/src/ce_synmemo.pas +++ b/src/ce_synmemo.pas @@ -1783,10 +1783,10 @@ begin str := TStringList.Create; try str.LoadFromFile(fFilename); - SelectAll; - SelText:= str.Text; - SelStart:=0; - SelEnd:=0; + ClearAll; + InsertTextAtCaret(str.Text); + SelStart:= high(integer); + ExecuteCommand(ecDeleteLastChar, #0, nil); fModified := true; finally str.Free;