Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Scrolling Forms
Message
De
13/06/1998 11:59:29
Raymond Humphrys
Michigan Department of Community Health
Bath, Michigan, États-Unis
 
Information générale
Forum:
Visual FoxPro
Catégorie:
Gestionnaire d'écran & Écrans
Titre:
Divers
Thread ID:
00086569
Message ID:
00107857
Vues:
60
>>>>Yes, thanks. Could you send me some code to get started. Nice move.
>>>>
>>>>thanks,
>>>>
>>>>ray
>>>
>>>Ray,
>>>
>>>I apologize for the delay. I've been focused on moving into a new home, starting a new job, and developing a contracting project. Making time to breathe has been a concern, too.
>>>
>>>Here's some code for you to try. In the form, place two scroll bars anywhere on the form and make one vertical, the other horitzontal. Make sure the object names and the sample code match.
>>>
>>>A couple things to keep in mind is: 1) This may not be the only/best way to do this (but it worked for me); 2) You'll need a bitmap of the lower-right portion of a window (the square piece connecting the vertical and horitzonal scroll bars) and call it "GrabSize". Without it, there may be a clear/blank area there instead.
>>>
>>>Good luck!
>>>
>>>Michael Reynolds
>>>Santa Barbara, CA
>>>
>>>**********************
>>>
>>>CHANGE EVENT FOR VERT SCROLL
>>>
>>>* ----- create factor constant
>>>
>>>ScrollFactor = ;
>>> 32767 / (THISFORM.PageFrame1.Height - (THISFORM.Height - 20))
>>>
>>>* ----- set top property of page frame
>>>THISFORM.PageFrame1.Top = 0 - THIS.Value / ScrollFactor
>>>
>>>* ----- refresh form
>>>THISFORM.PageFrame1.Refresh
>>>
>>>*********************
>>>
>>>CHANGE EVENT FOR HORIZ SCROLL
>>>
>>>* ----- create factor constant
>>>ScrollFactor = ;
>>> 32767 / (THISFORM.PageFrame1.Width - (THISFORM.Width - 16))
>>>
>>>* ----- set top property of page frame
>>>THISFORM.PageFrame1.Left = 0 - (THIS.Value / ScrollFactor)
>>>
>>>* ----- refresh form
>>>THISFORM.PageFrame1.Refresh
>>>
>>>**********************
>>>
>>>INIT EVENT FOR FORM
>>>
>>>* ----- set scroll size according to resolution
>>>THIS.ScrollSize = IIF(SCOLS() > 99, 16, 13)
>>>
>>>* ----- set properties
>>>THIS.VertScroll.SmallChange = 1500
>>>THIS.HorizScroll.SmallChange = 2000
>>>THIS.VertScroll.LargeChange = 4000
>>>THIS.HorizScroll.LargeChange = 6000
>>>
Are there any PEMs that I'm not creating? I don't seem to have a VALUE for my scroll bars. I watched in DEBUG the values and each time THIS.VALUE could not be evaluated. I must be forgetting to create something.

ray
>>>* ----- set win pos
>>>THIS.Left = &pcAlias..wLeft
>>>THIS.Top = &pcAlias..wTop
>>>THIS.Width = &pcAlias..wWidth
>>>THIS.Height = &pcAlias..wHeight
>>>
>>>* ----- locate bitmap in bottom right corner
>>>THIS.GrabSize.Move((THIS.Width - THIS.ScrollSize), ;
>>> THIS.Height - THIS.ScrollSize)
>>>THIS.GrabSize.Height = THIS.Height
>>>THIS.GrabSize.Height = THIS.ScrollSize
>>>THIS.GrabSize.Width = THIS.ScrollSize
>>>THIS.GrabSize.Left = THIS.Width - THIS.ScrollSize
>>>THIS.GrabSize.Top = THIS.Height - THIS.ScrollSize
>>>
>>>THIS.Resize()
>>>
>>>************************
>>>
>>>RESIZE EVENT FOR FORM
>>>
>>>* ----- move bitmap around
>>>THIS.GrabSize.Left = THIS.Width - THIS.ScrollSize
>>>THIS.GrabSize.Top = THIS.Height - THIS.ScrollSize
>>>
>>>* ----- move them
>>>THIS.VertScroll.Move(THIS.Width - THIS.ScrollSize, 0)
>>>THIS.HorizScroll.Move(0, THIS.Height - THIS.ScrollSize)
>>>
>>>* ----- resize scroll bars
>>>THIS.VertScroll.Height = THIS.Height
>>>THIS.VertScroll.Height = THIS.Height - THIS.ScrollSize
>>>THIS.VertScroll.Width = THIS.ScrollSize
>>>THIS.VertScroll.Left = THIS.Width - THIS.ScrollSize
>>>THIS.HorizScroll.Width = THIS.Width
>>>THIS.HorizScroll.Width = THIS.Width - THIS.ScrollSize
>>>THIS.HorizScroll.Height = THIS.ScrollSize
>>>THIS.HorizScroll.Top = THIS.Height - THIS.ScrollSize
>>>
>>>* ----- refresh form
>>>THIS.PageFrame1.Refresh
>>
>>I built a form. It has a pageframe in the middle and the MS H&V scroll bars on the form, not the pageframe.
>>The code you sent me dies in the H&V Change event at the following line:
>>
>>THISFORM.tsPageFrame1.Top = 0 - THIS.Value / ScrollFactor
>>
>>I don't think VFP likes the second half of the numerator i.e. "THIS.Value". What is this supposed to be?
>>
>>Thanks for the code. Considering your move, job, and Santa Barbara it was nice of you to send it along.
>>
>>ray
>
>Interesting. What I gave you should be the exact code to make it work. I'll check my application to see if anything was left out, as I don't have it available where I am now. The scroll bars should be getting initialized by the form, when it loads. I'll get back to you soon (sooner than last time, I hope!).
>
>Michael Reynolds
Some days it's not worth chewing through the leather straps ...
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform