如何使用TProgressBar显示TFDScript执行的进度?

时间:2018-02-09 00:15:02

标签: sqlite delphi firedac

我在某个文件中有一些脚本" MyScript.sql" 在表格上我有我的TProgressBar。 我想用TFDScript阅读脚本并根据脚本移动进度条。

我的代码是

    Var

      Lista: TStringList; // SQL DDL list for creating table and populate table
      I: Integer;
    Begin

  With FDConn Do    //FDConn is my FaireDac connection
  Begin
    LoginPrompt := False;
    With Params Do
    Begin
      Clear;
      DriverID := 'SQLite';
      Database := 'MyDatabase.sdb';
      LoginPrompt := False;
    End;

    Lista := TStringList.Create;
    Lista.Clear;
    Try

      FDScript.ValidateAll;   //FDScript is TFDScript and prgBar is TProgressBar
      prgBar.Max := FDScript.TotalJobSize - 1;
      prgBar.Update;

      Lista.Clear;
      Lista.LoadFromFile('MyScript.sql');

// Now how I can read script 1 line by 1 line and move progress bar with
prgBar.StepIt;
prgBar.Update;`

1 个答案:

答案 0 :(得分:1)

您可以处理OnProgress事件并在那里阅读,例如TotalJobSize属性确定要继续的字节数,TotalJobDone来确定处理的字节数。例如:

procedure TForm1.FDScript1Progress(Sender: TObject);
begin
  ProgressBar1.Max := TFDScript(Sender).TotalJobSize;
  ProgressBar1.Position := TFDScript(Sender).TotalJobDone;
end;

如果您正在使用进度条控件并按百分比设置进度值,则最好阅读TotalPct10Done属性。