Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Drawing lines
Message
De
12/05/2008 05:16:35
 
 
À
10/05/2008 05:42:22
Information générale
Forum:
Visual FoxPro
Catégorie:
Gestionnaire d'écran & Écrans
Titre:
Divers
Thread ID:
01316207
Message ID:
01316353
Vues:
15
>>Hi All,
>>
>>I have a form. At runtime I add a bunch of objects to the form, mainly rectangular shapes. I then want to draw some lines over those shapes using THISFORM.LINE(X,Y) method.
>>
>>Pseudo code 1:
>>
>>
>>THISFORM.LOCKSCREEN=.T.
>>ADDOBJECT( shapes )  &&  mulitple shapes added
>>THISFORM.LINE(X,Y)   &&  multiple lines needed
>>THISFORM.LOCKSCREEN=.F.
>>
>>
>>In the above example either no lines are shown or they are shown but behind the shapes even though the shapes were drawn/added first.
>>
>>Pseudo Code 2:
>>
>>
>>THISFORM.LOCKSCREEN=.T.
>>ADDOBJECT( shapes )  &&  mulitple shapes added
>>THISFORM.LOCKSCREEN=.F.
>>
>>THISFORM.LOCKSCREEN=.T.
>>THISFORM.LINE(X,Y)   &&  multiple lines needed
>>THISFORM.LOCKSCREEN=.F.
>>
>>
>>In this example again no lines are drawn or they incorrectly appear behind the shapes.
>>
>>However, if I introduce an INKEY() between the two operations the lines appear correctly and on top of the shapes as desired. i.e.;
>>
>>Pseudo Code 3:
>>
>>
>>THISFORM.LOCKSCREEN=.T.
>>ADDOBJECT( shapes )
>>THISFORM.LOCKSCREEN=.F.
>>
>>INKEY(0.01)
>>
>>THISFORM.LOCKSCREEN=.T.
>>THISFORM.LINE(X,Y)
>>THISFORM.LOCKSCREEN=.F.
>>
>>
>>Substituting DOEVENTS for the INKEY() does not work. Only using INKEY() (or probably some other wait state I assume).
>>
>>
>>Why?
>
>Jos,
>
>I think foxpro does not process the screen redraw until it has some time (IdleState). The inkey() gives foxpro the time to process those things
>
>Maybe try thisform.Draw() instead of inkey(). If this works you can try it in pseude code 1
>
>ps: there was a thread some time ago about a label not sizing immediately after the caption was reassigned. I answered I had used an inkey()

Gregory,

THISFORM.DRAW() can replace the INKEY() in pseduo code 3. However, it still does not work in pseduo code 1 or 2. Thanks for the feedback.
In the End, we will remember not the words of our enemies, but the silence of our friends - Martin Luther King, Jr.
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform