QR3 - pro - previewmodal, preview modeless and paradox tables - expert help needed

Can anyone tell me if paradox tables are the kind suitable for use with
previewmodal and previewmodeless. I am having problems using them.
Here is the code I wrote for running a report

procedure TfmCustomers.CustomerList1Click(Sender: TObject);

    qrCustomers: TqrCustomers;


    qrCustomers := TqrCustomers.Create(Self); {create the form that contains
the quickreport}
    CustomerList1.Enabled := False; {disable menuitem}
    DataRep1.tbCustomers.Open; {open table used for report}
    qrCustomers.QuickRep1.Preview; {run the quickreport}
    DataRep1.tbCustomers.Close; {close the table}
    CustomerList1.Enabled := True; {enable the menuitem}
    qrCustomers.Release; {release form containing the quickreport}


This procedure is not perfect at the moment, not sure if I have got it
right. The execution stops at the line where the preview is executed,
although I can still execute other menu comands, it is just that when I
close the preview form execution will begin at the finally statement.

This can cause problems as when I close the form that contains the menu
command and close the preview form afterwards, execution begins at finally,
table is closed, (which is OK as it still exists in the DataRep1 datamodule)
but the menuitem no longer
exists and an error occurs.

There has got to be a neater way, and I would also like to use the
previewmodeless call (a true modeless quickreport call) instead of preview
which would mean rewriting the procedure.

I have heard that previewmodeless call in quickreport 3 profesional (which I
am using , paid for it} only works for a certain type of table, are paradox
tables suitable.?

Any help greatly appreciated, thanks in advance


the Quickreport1 has an onpreview procedure

procedure TqrCustomers.QuickRep1Preview(Sender: TObject);
 qrpCustomers: TMYPreview;
    qrpCustomers := TMYPreview.Create(Self);               {create my
    qrpCustomers.Caption := 'Report - Customer List';   {set the caption of
my preview}

    qrpCustomers.pQuickreport := QuickRep1;   {let the preview know which
quickperort is calling it}

    qrpCustomers.QRPreview1.QRPrinter := TQRPrinter(Sender);
    qrpCustomers.Show; {show my preview}