>>*** This method displays a Wait Window containing txMessage, just above toObject. >>*** Include .T. for tlClear or tlWait if you want clear the message or wait for a key press. >>*** Examples from text box Valid methods: >>*** THISFORM.WaitWindow("Note: Division has also been reset. Tap any key to continue.", THIS, .T., .T.) >>*** THISFORM.WaitWindow("Please enter an Estimate greater than or equal to zero.", THIS) >> >>LPARAMETERS tcMessage, toObject, tlClear, tlWait >> >>IF ! tlClear >> tcClear = "NOCLEAR" >>ELSE >> tcClear = "" >>ENDIF >>IF ! tlWait >> tcWait = "NOWAIT" >>ELSE >> tcWait = "" >>ENDIF >> >>TitleHeight = SYSMETRIC(9) >>FrameHeight = SYSMETRIC(11) >>MenuHeight = SYSMETRIC(20) >>ScreenRows = SROWS() >>PixelsPerRow = _screen.Height / ScreenRows >> >>*** All objects on this form are enclosed in 2 page frames, that is the reason for the parent.parent >>*** This needs to be changed to automatically search the object for parent containers >>RowStartPixel = _Screen.Top + ThisForm.Top + toObject.Top + toObject.parent.parent.Top + ; >> toObject.parent.parent.parent.parent.Top + 2 * FrameHeight + MenuHeight + 3 * TitleHeight >>lnRow = RowStartPixel / PixelsPerRow >> >>FrameWidth = SYSMETRIC(10) >>ScreenCols = SCOLS() >>PixelsPerColumn = _screen.Width / ScreenCols >>ScreenWidth = SYSMETRIC(1) >>MessageWidth = ThisForm.TextWidth(tcMessage) >>ColumnStartPixel = _Screen.Left + ThisForm.Left + toObject.Left + toObject.parent.parent.Left ; >> + toObject.parent.parent.parent.parent.Left + 2 * FrameWidth >>IF MessageWidth + ColumnStartPixel > ScreenWidth >> ColumnStartPixel = ColumnStartPixel - MessageWidth + toObject.Width >>ENDIF >>lnCol = ColumnStartPixel / PixelsPerColumn >> >>*** Adding 1 to the row and column makes it display in the right location???? >>WAIT tcMessage WINDOW AT lnRow + 1, lnCol + 1 &tcWait &tcClear >>