Yes, this is more or less what I tried.
Every time a record was found, call Application.ProcessMessages
No joy.



> You could try counting the executions of OnFilterRecord with a form
variable and doing an
> application.processmessages every few hundred passes of the filter code.
I'd be curious if that works so please repost if it does. Thanks.
>
> Dave
>
> --- On Wed, 10/22/08, Theodoros Bebekis <[EMAIL PROTECTED]> wrote:
>
> From: Theodoros Bebekis <[EMAIL PROTECTED]>
> Subject: Re: [delphi-en] Immediate grid update when dataset is filtered?
To: [email protected]
> Date: Wednesday, October 22, 2008, 1:55 AM
>
> O/H [EMAIL PROTECTED] Ýãñáøå:
>> Delphi 5.
>> Have a TDBGrid attached to a TDataset.
>> The dataset has a custom filter ie
>> procedure TForm1.OnFilterRecord(DataSet: TDataSet; var Accept:
Boolean);
> ...
>> Sometimes, the filter will only pick out a handful of records from a large
>> dataset. Say 7 records.
>> I notice the grid does not display any entries until all 7 have been found
>> (the grid contains more than 7 rows). To find all 7, the entire file
has
>> been scanned.
>> Is there a way to update the grid immediately: as soon as
OnFilterRecord
>> has returned Accept=true ?
>> That is, the grid would populate rows (plop, plop, plop) as the entire
file was scanned and each of the records found. The user could then
CANCEL
>> when they saw their record come up. Instead of waiting for the entire file
>> to be filtered/scanned.
>> Dataset.Refresh starts the while process over again: that is not what I
want.
>> Feels like I want a "grid.refresh" method: an
> Application.ProcessMessages
>> sort of thing, to ensure the grid is actually displaying the record which
>> I know has just been accepted in OnFilterRecord.
>> Is there a trick, or am I deluding myself, and should take a different
approach... ?
>> Many thanks in advance.
>
> Hi
>
> the Filter/Filtered/OnFilterRecord set
> works more or less the way you describe.
>
> It seems that this is not the functionality you really need.
>
>  From what you describe I understand (possibly I'm wrong)
> that you want an operation where
>    1. a kind of filtering is applied to the rows of a dataset
>       testing the rows one by one
>    2. when a row passes the test, it is moved to SECOND dataset
>       and displayed to a second grid.
>
> If the above is correct, then you have to code it by yourself.
> The filtering capabilities of the TDataset do not cover that
> kind of functionality.
>
>
> --
> Regards
> Theo
>
> ------------------------
> Theo Bebekis
> Thessaloniki, Greece
> ------------------------
> Greek_Delphi_Prog : a Delphi Programming mailing list in Greek at
>     http://groups.yahoo.com/group/Greek_Delphi_Prog
>
> CSharpDotNetGreek : A C# and .Net mailing list in Greek language at
>     http://groups.yahoo.com/group/CSharpDotNetGreek
>
> atla_custom : a Unisoft Atlantis Customization mailing list at
>     http://groups.yahoo.com/group/atla_custom
> ------------------------
>
> ------------------------------------
>
> -----------------------------------------------------
> Home page: http://groups.yahoo.com/group/delphi-en/
> To unsubscribe: [EMAIL PROTECTED] Groups Links
>
>
>
>
>
>
>
>
> [Non-text portions of this message have been removed]
>
>
> ------------------------------------
>
> -----------------------------------------------------
> Home page: http://groups.yahoo.com/group/delphi-en/
> To unsubscribe: [EMAIL PROTECTED] Groups Links
>
>
>
>




Reply via email to