At 14:00 2002-12-16 -0800, you wrote:
I think this will work on the H330 if you just move it... my concern is moving it while its being displayed. If you look at the HandEra 330 examples in their SDK, check out example E -- they use a function called PrvMoveObject which explicitly erases the object using a WinEraseRectangle call, then uses FrmSetObjectBounds to move it lower on the form.Ben Combee wrote:GsiSetLocation isn't really a user level function -- its used internally by the form code and the field management code. The proper way to adjust this items position would be to change the location of the GSI object in your form.
Thanks for the tip. I will try that.You probably should do this when the form isn't displayed, as GSI's can't be hidden/shown.Unfortunately, that is in fact when I want to move the GSI. I'm working on code for the HandEra 330, moving objects at the bottom of the form whenever the user shrinks or re-expands the virtual silkscreen. (And eventually I'll probably want to adapt it further to do the same thing on the Sonys.) Is there something other than the combination of FrmEraseForm/FrmDrawForm that would work better while the form is being displayed?
Actually, example H in their SDK has a function called PrvFrmGetGSI... to move it, they do a sequence like:
objIdx = PrvFrmGetGSI(frmP);
PrvMoveObject (frmP, objIdx, y_diff, draw);
FrmGetObjectPosition(frmP, objIdx, &x, &y);
GsiSetLocation (x, y+y_diff);
which updates both the form and the GSI settings.
--
Ben Combee <[EMAIL PROTECTED]>
CodeWarrior for Palm OS technical lead
Palm OS programming help @ www.palmoswerks.com
--
For information on using the Palm Developer Forums, or to unsubscribe, please see http://www.palmos.com/dev/support/forums/
