Table/Query open and progress bar

Hello,

I want to have a progress bar when executing a Query (or Table) open with
big amount of data
which needs a long time.
Can I do this with a BDE Callback like below ? I think, this only runs with
batchmove-operations.
Please give me a hint.
Thank you very much for help: Reinhard Hagen

procedure TDataModule1.DM1Create(Sender: TObject);
begin
  FrmProgress:=TFrmProgress.Create(Application);
  FrmProgress.Show;

  DataBase1.connected:=true;

  CBProgressDone:=AllocMem(SizeOf(CBProgressDesc));
  Check(DbiRegisterCallBack(nil, cbGenProgress,
        Longint(Self), SizeOf(CBProgressDesc), CBProgressDone,
        @BDECallBack));                                        //
BDECallBack = global procedure

  Query1.Active:=true;  //this needs a lot of time

  Check(DbiRegisterCallBack(nil, cbGenProgress, 0,
                            SizeOf(CBProgressDesc), CBProgressDone, nil));
  Freemem(CBProgressDone, SizeOf(CBProgressDesc));

  FrmProgress.Release;