Anton Shchyrov created THRIFT-4462:
--------------------------------------
Summary: Incorrect first line in Console
Key: THRIFT-4462
URL: https://issues.apache.org/jira/browse/THRIFT-4462
Project: Thrift
Issue Type: Bug
Components: Delphi - Library
Affects Versions: 0.11.0
Reporter: Anton Shchyrov
Attachments: Thrift.Console.patch
Method Console.Write/WriteLine in class TGUIConsole after called method *Write*
and clear log duplicates current message
{{ChangeConsole(TGUIConsole.Create(Memo1.Lines));}}
{{Console.Write('String'); // Set internal FLineBreak to False}}
{{Memo1.Lines.Clear;}}
{{Console.Write('Some String'); // Log have "Some StringSome String"}}
Reason in method
{{procedure TGUIConsole.InternalWrite(const S: string; bWriteLine: Boolean);}}
{{var}}
{{ idx : Integer;}}
{{begin}}
{{ if FLineBreak then}}
{{ begin}}
{{ FMemo.Add( S );}}
{{ end else}}
{{ begin}}
{{ idx := FMemo.Count - 1;}}
{{ if idx < 0 then}}
{{ begin}}
{{ FMemo.Add( S );}}
{{ end;}}
{{ FMemo[idx] := FMemo[idx] + S;}}
{{ end;}}
{{ FLineBreak := bWriteLine;}}
{{end;}}
If FMemo.Count = 0 then idx = -1 and string added to log. But next line
{{FMemo[idx] := FMemo[idx] + S;}}
repeats the added string. should be
if idx < 0 then
begin
FMemo.Add( S );
end *else*
FMemo[idx] := FMemo[idx] + S;
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)