Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Grid Dynamic* expressions being called too many times (VFP8)
Message
De
03/09/2003 15:31:05
 
 
À
Tous
Information générale
Forum:
Visual FoxPro
Catégorie:
Gestionnaire d'écran & Écrans
Titre:
Grid Dynamic* expressions being called too many times (VFP8)
Divers
Thread ID:
00825799
Message ID:
00825799
Vues:
61
I placed a statement to log how my grid's DynamicFontBold expression is being called and I'm dismayed to see that VFP loops through the set of displayed records multiple times during it's grid GUI update logic.

Listed below is a log of what's happening. The output shows what's happening relative to other control events.

In a nutshell, VFP calls the Dynamic* expression 4 times for each visible record before the grid even has focus. A similar set of repeated calls to Dynamic* expressions occurs during the grid "focus" event and while navigating in the grid.

Some interesting observations so far:

1. Dynamic*Color expressions get called twice in a row for each record as opposed to DynamicFont* expressions. Sounds like a bug to me?

2. Grid "update" events (and the invokation of Dynamic* expressions) don't appear to be available for study via the "set eventtracking" command.

My goal is to reduce/eliminate redundant calls to grid Dynamic* expressions. Any ideas?

Thanks!
Malcolm

Log output that results when I show a form with one button (gets initial focus) and a grid and then exit without giving grid focus. The text that follows record numbers are the functions/events directly above the expression being called based on walking call stack backwards using program( one level up ), program( two levels up ):

[9/3/2003 2:51:52 PM TEST12] Form.Init().Start
[9/3/2003 2:51:52 PM TEST12] Form.Init().End

[9/3/2003 2:51:52 PM TEST12] Column1.Init()

[9/3/2003 2:51:52 PM TEST12] Grid.Init().Start
[9/3/2003 2:51:52 PM TEST12] Grid.Init().End

[9/3/2003 2:51:52 PM TEST12] Form.Refresh().Start
[9/3/2003 2:51:52 PM CLSFORM.REFRESH] Grid.Refresh().Start
[9/3/2003 2:51:52 PM CLSFORM.GRIDCELLPAINT] record = 1; CLSFORM.GRIDCELLPAINT, CLSFORM.GRDGRID.REFRESH
[9/3/2003 2:51:52 PM CLSFORM.GRIDCELLPAINT] record = 2; CLSFORM.GRIDCELLPAINT, CLSFORM.GRDGRID.REFRESH
[9/3/2003 2:51:52 PM CLSFORM.GRIDCELLPAINT] record = 3; CLSFORM.GRIDCELLPAINT, CLSFORM.GRDGRID.REFRESH
[9/3/2003 2:51:52 PM CLSFORM.GRIDCELLPAINT] record = 4; CLSFORM.GRIDCELLPAINT, CLSFORM.GRDGRID.REFRESH
[9/3/2003 2:51:52 PM CLSFORM.GRIDCELLPAINT] record = 5; CLSFORM.GRIDCELLPAINT, CLSFORM.GRDGRID.REFRESH
[9/3/2003 2:51:52 PM CLSFORM.GRIDCELLPAINT] record = 6; CLSFORM.GRIDCELLPAINT, CLSFORM.GRDGRID.REFRESH
[9/3/2003 2:51:52 PM CLSFORM.GRIDCELLPAINT] record = 7; CLSFORM.GRIDCELLPAINT, CLSFORM.GRDGRID.REFRESH
[9/3/2003 2:51:52 PM CLSFORM.REFRESH] Grid.Refresh().End

[9/3/2003 2:51:52 PM CLSFORM.GRIDCELLPAINT] record = 1; CLSFORM.GRIDCELLPAINT, CLSFORM.REFRESH
[9/3/2003 2:51:52 PM CLSFORM.GRIDCELLPAINT] record = 2; CLSFORM.GRIDCELLPAINT, CLSFORM.REFRESH
[9/3/2003 2:51:52 PM CLSFORM.GRIDCELLPAINT] record = 3; CLSFORM.GRIDCELLPAINT, CLSFORM.REFRESH
[9/3/2003 2:51:52 PM CLSFORM.GRIDCELLPAINT] record = 4; CLSFORM.GRIDCELLPAINT, CLSFORM.REFRESH
[9/3/2003 2:51:52 PM CLSFORM.GRIDCELLPAINT] record = 5; CLSFORM.GRIDCELLPAINT, CLSFORM.REFRESH
[9/3/2003 2:51:52 PM CLSFORM.GRIDCELLPAINT] record = 6; CLSFORM.GRIDCELLPAINT, CLSFORM.REFRESH
[9/3/2003 2:51:52 PM CLSFORM.GRIDCELLPAINT] record = 7; CLSFORM.GRIDCELLPAINT, CLSFORM.REFRESH
[9/3/2003 2:51:52 PM TEST12] Form.Refresh().End

[9/3/2003 2:51:52 PM TEST12] Grid.Refresh().Start
[9/3/2003 2:51:52 PM CLSFORM.GRIDCELLPAINT] record = 1; CLSFORM.GRIDCELLPAINT, CLSFORM.GRDGRID.REFRESH
[9/3/2003 2:51:52 PM CLSFORM.GRIDCELLPAINT] record = 2; CLSFORM.GRIDCELLPAINT, CLSFORM.GRDGRID.REFRESH
[9/3/2003 2:51:52 PM CLSFORM.GRIDCELLPAINT] record = 3; CLSFORM.GRIDCELLPAINT, CLSFORM.GRDGRID.REFRESH
[9/3/2003 2:51:52 PM CLSFORM.GRIDCELLPAINT] record = 4; CLSFORM.GRIDCELLPAINT, CLSFORM.GRDGRID.REFRESH
[9/3/2003 2:51:52 PM CLSFORM.GRIDCELLPAINT] record = 5; CLSFORM.GRIDCELLPAINT, CLSFORM.GRDGRID.REFRESH
[9/3/2003 2:51:52 PM CLSFORM.GRIDCELLPAINT] record = 6; CLSFORM.GRIDCELLPAINT, CLSFORM.GRDGRID.REFRESH
[9/3/2003 2:51:52 PM CLSFORM.GRIDCELLPAINT] record = 7; CLSFORM.GRIDCELLPAINT, CLSFORM.GRDGRID.REFRESH
[9/3/2003 2:51:52 PM TEST12] Grid.Refresh().End

[9/3/2003 2:51:52 PM CLSFORM.GRIDCELLPAINT] record = 1; CLSFORM.GRIDCELLPAINT, TEST12
[9/3/2003 2:51:52 PM CLSFORM.GRIDCELLPAINT] record = 2; CLSFORM.GRIDCELLPAINT, TEST12
[9/3/2003 2:51:52 PM CLSFORM.GRIDCELLPAINT] record = 3; CLSFORM.GRIDCELLPAINT, TEST12
[9/3/2003 2:51:52 PM CLSFORM.GRIDCELLPAINT] record = 4; CLSFORM.GRIDCELLPAINT, TEST12
[9/3/2003 2:51:52 PM CLSFORM.GRIDCELLPAINT] record = 5; CLSFORM.GRIDCELLPAINT, TEST12
[9/3/2003 2:51:52 PM CLSFORM.GRIDCELLPAINT] record = 6; CLSFORM.GRIDCELLPAINT, TEST12
[9/3/2003 2:51:52 PM CLSFORM.GRIDCELLPAINT] record = 7; CLSFORM.GRIDCELLPAINT, TEST12
[9/3/2003 2:51:52 PM CLSFORM.GRIDCELLPAINT] record = 1; CLSFORM.GRIDCELLPAINT, TEST12
[9/3/2003 2:51:52 PM CLSFORM.GRIDCELLPAINT] record = 2; CLSFORM.GRIDCELLPAINT, TEST12
[9/3/2003 2:51:52 PM CLSFORM.GRIDCELLPAINT] record = 3; CLSFORM.GRIDCELLPAINT, TEST12
[9/3/2003 2:51:52 PM CLSFORM.GRIDCELLPAINT] record = 4; CLSFORM.GRIDCELLPAINT, TEST12
[9/3/2003 2:51:52 PM CLSFORM.GRIDCELLPAINT] record = 5; CLSFORM.GRIDCELLPAINT, TEST12
[9/3/2003 2:51:52 PM CLSFORM.GRIDCELLPAINT] record = 6; CLSFORM.GRIDCELLPAINT, TEST12
[9/3/2003 2:51:52 PM CLSFORM.GRIDCELLPAINT] record = 7; CLSFORM.GRIDCELLPAINT, TEST12
Malcolm Greene
Brooks-Durham
mgreene@bdurham.com
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform