For Your Menu Problem, Have You Tried Push Menu and Pop Menu ?<br>
<br>
procedure CUSTMENU<br>
************************************************************************************<br>
push menu _msysmenu<br>
set sysmenu to<br>
do custaddr.mpr<br>
pop menu _msysmenu<br>
return<br>
<br>
<br>
<br>
<br>
For For Your password problem.<br>
<br>
*/***************************************************************************<br>
*/Program : Function Password<br>
*/System :<br>
*/Purpose : Checks a Entered String against a password and return a logical<br>
*/Syntax : lcPassword = Password(Row,Clm)<br>
*/Returns : string , password enrtered<br>
*/Parameter : Integer - Row - The screen row where the input is to be<br>
*/ : Integer - Clm - The screen column where the input is to be<br>
*/Defaults : Row = 0<br>
*/ : Clm = 0<br>
*/Requires : Nothing<br>
*/Changes : Nothing<br>
*/Calls :<br>
*/Version : 1.0<br>
*/Dated : 05/28/1989<br>
*/Written By: David W. Grewe<br>
*/***************************************************************************<br>
*& Utility - Security<br>
*/***************************************************************************<br>
*/ Record Of Change<br>
*/<br>
*/***************************************************************************<br>
parameters PnROW , PnCOL<br>
private PnROW , PnCOL , P_VER<br>
private L_PARA , LcMsg , LcCol , LcPassWord , LnKEY , LcDISPLAY<br>
L_PARA = parameters()<br>
if L_PARA < 2 .or. type('PnROW') <> "N" .or. type('PnCOL') <> "N"<br>
PnCOL = int((scols()-40)/2)<br>
PnROW = int((srows()-4)/2)<br>
endif<br>
*****<br>
*****<br>
* Initialize the password variable so it can be retrieved.<br>
LcPassWord = ""<br>
LcMsg = "Enter Password"<br>
LcCol = len(LcMsg) + 25<br>
PnROW = iif(PnROW < 0, int((srows()-4)/2), iif(PnROW > srow(), srow()-4, PnROW))<br>
PnCOL = iif(PnCOL < 0, int((scols()-40)/2),iif(PnCOL > scol(), scol()-44, PnCOL))<br>
LnKEY = 0<br>
LcDISPLAY=""<br>
set escape off<br>
set cursor off<br>
define window password from PnROW,PnCOL to PnROW+2,PnCOL+30 system noclose nogrow nofloat nozoom nomdi color scheme 8<br>
activate window password<br>
@ 0,0 say LcMsg<br>
do while len(LcPassWord) < 10<br>
LnKEY=inkey()<br>
do case<br>
case LnKEY = 13 && Return key<br>
exit<br>
case LnKEY = 27 && Escape key<br>
LcDISPLAY = ''<br>
LcPassWord = ''<br>
case LnKEY = 127 && Backspace key<br>
LcPassWord = left(LcPassWord, len(LcPassWord)-1)<br>
LcDISPLAY = replicate("*",len(LcPassWord))<br>
case between(LnKEY,48,57) && a Number<br>
LcPassWord = LcPassWord + chr(LnKEY)<br>
LcDISPLAY = replicate("*",len(LcPassWord))<br>
case between(LnKEY,65,90) && a Upper Case Letter<br>
LcPassWord = LcPassWord + chr(LnKEY)<br>
LcDISPLAY = replicate("*",len(LcPassWord))<br>
case between(LnKEY,97,122) && a Lower Case Letter<br>
LcPassWord = LcPassWord + chr(LnKEY)<br>
LcDISPLAY = replicate("*",len(LcPassWord))<br>
endcase<br>
@ 0,len(LcMsg)+2 say LcDISPLAY<br>
enddo<br>
set escape on<br>
set cursor on<br>
release window password<br>
release PnROW , PnCOL , PcVER<br>
release L_PARA , LcMsg , LcCol , LnKEY , LcDISPLAY<br>
return LcPassWord<br>
<br>