*--The next line is a valid example, pickhelp is used in many places DO PickHelp WITH m.ag_state, 'BI', 'SELECT BI LIMIT', map_incep PROCEDURE PickHelp PARAMETERS sState, sKey, sTitle, dEff PRIVATE dbfarea, sKeyBoard, iBar dbfarea = ALIAS() sKeyBoard = '' iBar = 0 IF EMPTY(dEff) dEff = DATE() ENDIF SELECT 0 USE (ddir+'USERHELP') SELECT 0 SELECT * FROM UserHelp ; WHERE Uh_state = sState ; AND Uh_key = sKey ; AND ( EMPTY(Uh_Begin) OR Uh_Begin <= dEff) ; AND ( EMPTY(Uh_End) OR Uh_End > dEff ) ; INTO CURSOR uHelp USE IN UserHelp SELECT uHelp GOTO TOP IF RECCOUNT() = 0 USE IN uHelp IF !EMPTY(dbfarea) SELECT (dbfarea) ENDIF RETURN ENDIF DEFINE POPUP UserHelp MARK CHR(32) MARGIN PROMPT FIELD uHelp.Uh_value poptitle = sTitle popchoice = 1 DO FORM "USERHELP.SCX" NAME oUserhelp LINKED IF LASTKEY() <> 27 sKeyBoard = CHR(25) + PADR(ALLTRIM(uHelp.Uh_value),uHelp.Uh_length) ENDIF USE IN uHelp IF !EMPTY(dbfarea) SELECT (dbfarea) ENDIF IF !EMPTY(sKeyBoard) KEYBOARD sKeyBoard ENDIF RELEASE POPUP UserHelp RETURNI saved the form as a class so I could post the form's code. Nothing special:
DEFINE CLASS popuplist AS FORM Height = 375 Width = 420 DoCreate = .T. MaxButton = .F. MinButton = .F. Name = "frmUserhelp" ADD OBJECT list1 AS listbox WITH ; RowSourceType = 9, ; RowSource = "Userhelp", ; Value = 1, ; ControlSource = "popchoice", ; Height = 312, ; Left = 12, ; Top = 12, ; Width = 396, ; Name = "List1" ADD OBJECT cmdok AS commandbutton WITH ; Top = 336, ; Left = 177, ; Height = 25, ; Width = 65, ; Cancel = .T., ; Caption = "OK", ; Default = .T., ; Name = "cmdOK" PROCEDURE Init thisform.caption = poptitle popchoice = 1 ENDPROC PROCEDURE list1.DblClick thisform.Release ENDPROC PROCEDURE cmdok.Click thisform.Release ENDPROC ENDDEFINE