>>>>PROCEDURE UNLOAD >>>> CLEAR EVENTS >>>>ENDPROC >>>>>>>>
>>>>>oform=CREATEOBJECT('frmcombobox') >>>>>oform.show >>>>>READ EVENTS >>>>>RETURN >>>>> >>>>>DEFINE CLASS frmcombobox AS form >>>>> >>>>> >>>>> DoCreate = .T. >>>>> Caption = "Test Combo Box Form" >>>>> Name = "comboform" >>>>> DIMENSION alist[1,1] >>>>> >>>>> >>>>> ADD OBJECT cbocn_port AS combobox WITH ; >>>>> FontSize = 10, ; >>>>> RowSourceType = 2, ; >>>>> RowSource = "printers.cprinter", ; >>>>> Value = (" "), ; >>>>> ControlSource = "m.cn_port", ; >>>>> Height = 24, ; >>>>> ColumnLines = .T., ; >>>>> Left = 36, ; >>>>> SelectOnEntry = .T., ; >>>>> StatusBarText = "Press CTRL+0 (zero) to clear contents and leave blank.", ; >>>>> Style = 2, ; >>>>> TabIndex = 7, ; >>>>> ToolTipText = "Press F1 to select from all available printer type.", ; >>>>> Top = 24, ; >>>>> Width = 300, ; >>>>> Name = "cboCn_port" >>>>> >>>>> >>>>> ADD OBJECT button1 AS commandbutton WITH ; >>>>> FontSize = 10, ; >>>>> Caption = 'Close',; >>>>> Height = 27, ; >>>>> Left = 36,; >>>>> Top = 134,; >>>>> Name = 'cmdclose' >>>>> >>>>> ADD OBJECT text1 AS textbox WITH ; >>>>> ControlSource = "m.cn_port", ; >>>>> Height = 23, ; >>>>> Left = 36, ; >>>>> ReadOnly = .T., ; >>>>> TabStop = .F., ; >>>>> Top = 84, ; >>>>> Width = 300, ; >>>>> Name = "Text1" >>>>> >>>>> >>>>> PROCEDURE Release >>>>> IF USED('PRINTERS') >>>>> USE IN PRINTERS >>>>> ENDIF >>>>> CLEAR EVENTS >>>>> DODEFAULT() >>>>> ENDPROC >>>>> >>>>> >>>>> PROCEDURE Load >>>>> IF TYPE('hdir')="U" >>>>> hdir = LEFT(SYS(2005),RAT("\",SYS(2005))) >>>>> ENDIF >>>>> PRIVATE lcalias >>>>> lcalias="" >>>>> lcalias=ALIAS() >>>>> PRIVATE myname >>>>> myname=hdir+'printers.dbf' >>>>> SET SAFETY OFF >>>>> SELE 0 >>>>> CREATE TABLE (myname) (cprinter c(60)) >>>>> IF !EMPTY(lcalias) >>>>> SELECT (lcalias) >>>>> ENDIF >>>>> >>>>> >>>>> PROCEDURE Init >>>>> IF TYPE('m.cn_port')="U" >>>>> PUBLIC m.cn_port >>>>> m.cn_port="" >>>>> ENDIF >>>>> *--Create an array with all windows printers >>>>> PRIVATE m.numOfPrinters >>>>> m.numOfPrinters = APRINTERS(printerList) >>>>> IF m.numOfPrinters > 0 >>>>> DIMENSION THIS.alist[Alen(printerlist, 1), 2] >>>>> LOCAL m.i >>>>> FOR m.i = 1 TO ALEN(printerList, 1) >>>>> LOCAL printerName >>>>> m.printerName=" "+printerList[m.i, 1] >>>>> * m.printerName = Strtran(printerList[m.i, 1], "\", " \") >>>>> THIS.alist[m.i, 1] = m.printerName >>>>> NEXT >>>>> ENDIF >>>>> *--Copy array to a local table for use in combobox picklists >>>>> PRIVATE lcalias >>>>> lcalias="" >>>>> lcalias=ALIAS() >>>>> SET SAFETY OFF >>>>> SELE 0 >>>>> SELE printers >>>>> PRIVATE ia >>>>> FOR ia = 1 TO ALEN(THIS.alist,1) >>>>> SELE printers >>>>> APPEND BLANK >>>>> REPLACE printers.cprinter WITH THIS.alist(ia,1) >>>>> ENDFOR >>>>> IF !EMPTY(lcalias) >>>>> SELECT (lcalias) >>>>> ENDIF >>>>> ********************************************************** >>>>> ENDPROC >>>>> >>>>> PROCEDURE cmdclose.click >>>>> THISFORM.release >>>>> ENDPROC >>>>> >>>>> PROCEDURE cbocn_port.LostFocus >>>>> ON KEY LABEL F1 >>>>> IF ISNULL(THISFORM.cbocn_port.Value) .or. ISNULL(m.cn_port) >>>>> THISform.cbocn_port.Value="" >>>>> Thisform.cbocn_port.Refresh() >>>>> m.cn_port=thisform.cbocn_port.value >>>>> ENDIF >>>>> DODEFAULT() >>>>> ENDPROC >>>>> >>>>> >>>>> PROCEDURE cbocn_port.GotFocus >>>>> ON KEY LABEL SPACEBAR >>>>> ON KEY LABEL F1 KEYBOARD '{SPACEBAR}' >>>>> DODEFAULT() >>>>> ENDPROC >>>>> >>>>> >>>>> PROCEDURE cbocn_port.InteractiveChange >>>>> m.cn_port=this.value >>>>> THISFORM.text1.refresh >>>>> DODEFAULT() >>>>> ENDPROC >>>>> >>>>> >>>>>ENDDEFINE >>>>>* >>>>>*-- EndDefine: frmcombobox >>>>>************************************************** >>>>>