0

我正在编写一个 Firemonkey 应用程序并遇到了一个问题:TMemo 非常缓慢。加载 3 mb 文件需要 12 秒以上,VCL TMemo 只需要 400 毫秒

这是我的测试代码:

uses
    System.Threading, System.Diagnostics;

procedure TForm1.FormCreate(Sender: TObject);
begin
  TTask.Run(
    procedure
    begin
      Sleep(100);
      var stopwatch := TStopwatch.Create;

      TThread.Synchronize(nil,
        procedure
        begin
          stopwatch.Start;
          Memo1.Lines.LoadFromFile('../../../DemoData.json');
        end);

      TThread.Synchronize(nil,
        procedure
        begin
          stopwatch.Stop;
          Caption := stopwatch.ElapsedMilliseconds.ToString;
        end)
    end);
end;

整个测试项目(包括 JSON 文件)可以在这里找到: https ://borrisholt.dk/Delphi/MemoDemo.zip

或者您当然可以使用自己的 3mb 文本文件。

有什么可以做的吗,还是就像 FMX 一样?

4

1 回答 1

2
Memo1.ControlType:=Platform;

如果这样做,您可以在 vcl 中获得性能。

于 2021-09-17T19:59:44.497 回答