Question: Does PBEDIT accept command-line parameters? If so, what is the syntax?
Help:
The following code is a pseudo-tab control. It works pretty well except that on the first pass the "View Code" tab shows the "Title" listbox instead of the code textbox. After that it seems to work fine. I've tried a variety of different code in the callback but I can't get it to work properly. Any suggestions would be appreciated.
Help:
The following code is a pseudo-tab control. It works pretty well except that on the first pass the "View Code" tab shows the "Title" listbox instead of the code textbox. After that it seems to work fine. I've tried a variety of different code in the callback but I can't get it to work properly. Any suggestions would be appreciated.
Code:
#COMPILE EXE DEFLNG A - Z #INCLUDE "WIN32API.INC" #INCLUDE "PBForms.INC" #INCLUDE "COMMCTRL.INC" #INCLUDE "Comdlg32.inc" %IDD_DIALOG1 = 101 %IDD_DIALOG2 = 102 %IDD_DIALOG3 = 103 %IDD_DIALOG4 = 104 %IDC_CatLbl = 1000 %IDC_SubjectLbl = 1001 %IDC_TitleLbl = 1002 %IDC_ViewCodeLbl = 1003 %IDC_ExtractCodeLbl = 1004 %IDC_AddCodeLbl = 1005 %IDC_SearchLbl = 1006 %IDC_CatLstBx = 2000 %IDC_SubjectLstBx = 2001 %IDC_TitleLstBx = 2002 %IDC_ViewCodeTxtbx = 3000 %WM_DLG_MESS = %WM_USER + 500 TYPE DialogStruct Hndl AS DWORD Order AS BYTE Visable AS BYTE END TYPE TYPE LabelStruct ID AS DWORD Clicked AS BYTE END TYPE GLOBAL tDlg() AS DialogStruct GLOBAL tLbl() AS LabelStruct DECLARE CALLBACK FUNCTION ShowDIALOG1Proc() DECLARE CALLBACK FUNCTION ShowDIALOG2Proc() DECLARE CALLBACK FUNCTION ShowDIALOG3Proc() DECLARE CALLBACK FUNCTION ShowDIALOG4Proc() DECLARE CALLBACK FUNCTION ShowDialog5proc() DECLARE FUNCTION SampleListBox(BYVAL hDlg AS DWORD, BYVAL lID AS LONG, BYVAL _ lCount AS LONG) AS LONG DECLARE FUNCTION ShowDIALOG1(BYVAL hParent AS DWORD) AS LONG DECLARE FUNCTION ShowDIALOG2(BYVAL hParent AS DWORD) AS LONG DECLARE FUNCTION ShowDIALOG3(BYVAL hParent AS DWORD) AS LONG DECLARE FUNCTION ShowDIALOG4(BYVAL hParent AS DWORD) AS LONG DECLARE FUNCTION ShowDialog5(BYVAL hParent AS DWORD) AS LONG '------------------------------------------------------------------------------ '------------------------------------------------------------------------------ FUNCTION PBMAIN() DIM tDlg(1 TO 5) DIM tLbl(1 TO 6) FOR I = 0 TO 6 tLbl(I + 1).ID = %IDC_CatLbl + I NEXT I PBFormsInitComCtls (%ICC_WIN95_CLASSES OR %ICC_DATE_CLASSES OR %ICC_INTERNET_CLASSES) showdialog5(0) 'sleep 10000 ShowDIALOG1 %HWND_DESKTOP END FUNCTION '------------------------------------------------------------------------------ '------------------------------------------------------------------------------ CALLBACK FUNCTION ShowDIALOG1Proc() LOCAL DlgMes AS LONG LOCAL CtlMes AS LONG LOCAL DlgHnd AS DWORD LOCAL CtlHnd AS DWORD LOCAL DlgShow AS LONG LOCAL DlgHide AS LONG STATIC LastClick AS LONG STATIC Ubnd AS LONG CltMes = CBCTLMSG DlgHnd = CBHNDL CtlHnd = CBCTL SELECT CASE AS LONG CBMSG CASE %WM_INITDIALOG ' Initialization handler Vsx = GetSystemMetrics(%SM_CXVSCROLL) DIALOG PIXELS DlgHnd, Vsx, DlgXs TO UNITS Vsx, DlgXs DIALOG GET CLIENT DlgHnd TO DlgXs, DlgYs CONTROL GET SIZE DlgHnd, tLbl(1).ID TO X, Y DlgYs = DlgYs - Y DIALOG SET CLIENT tDlg(2).Hndl, DlgXs, DlgYs DIALOG SET LOC tDlg(2).Hndl, 0, Y CONTROL SET CLIENT tDlg(2).Hndl, %IDC_CatLstBx, DlgXs - Vsx, DlgYs DIALOG SET CLIENT tDlg(3).Hndl, DlgXs, DlgYs DIALOG SET LOC tDlg(3).Hndl, 0, Y CONTROL SET CLIENT tDlg(3).Hndl, %IDC_SubjectLstBx, DlgXs - Vsx, DlgYs DIALOG SET CLIENT tDlg(4).Hndl, DlgXs, DlgYs DIALOG SET LOC tDlg(4).Hndl, 0, Y CONTROL SET CLIENT tDlg(4).Hndl, %IDC_TitleLstBx, DlgXs - Vsx, DlgYs DIALOG SET LOC tDlg(5).Hndl, 0, Y CONTROL SET CLIENT tDlg(5).Hndl, %IDC_ViewCodeTxtbx, DlgXs - Vsx, DlgYs DIALOG SHOW STATE tDlg(2).Hndl, %SW_SHOW tDlg(2).Visable = 1 CONTROL SET FOCUS DlgHnd, tLbl(1).ID CONTROL SET COLOR DlgHnd, tLbl(1).ID, %WHITE, RGB(128, 200, 128) tLbl(1).Clicked = 1 LastClick = %IDC_CatLbl Ubnd = UBOUND(tDlg) FOR I = 2 TO 7 CONTROL SET COLOR DlgHnd, tLbl(I).ID, %BLACK, RGB(200, 128, 128) NEXT I CASE %WM_NCACTIVATE STATIC hWndSaveFocus AS DWORD IF ISFALSE CBWPARAM THEN ' Save control focus hWndSaveFocus = GetFocus() ELSEIF hWndSaveFocus THEN ' Restore control focus SetFocus(hWndSaveFocus) hWndSaveFocus = 0 END IF CASE %WM_COMMAND ' Process control notifications SELECT CASE AS LONG CtlMes CASE %STN_CLICKED ' SELECT CASE CtlHnd CASE %IDC_CatLbl IF LastClick = CtlHnd THEN EXIT SELECT CONTROL SET COLOR DlgHnd, CtlHnd, %WHITE, RGB(128, 200, 128) CONTROL SET COLOR DlgHnd, LastClick, %BLACK, RGB(200, 128, 128) CONTROL REDRAW DlgHnd, CtlHnd CONTROL REDRAW DlgHnd, LastClick IF LastClick > %IDC_ViewCodeLbl THEN FOR I = 2 TO Ubnd IF tDlg(I).Visable THEN DlgHide = I EXIT FOR END IF NEXT I ELSE DlgHide = LastClick - %IDC_CatLbl + 2 END IF DlgShow = CtlHnd - %IDC_CatLbl + 2 DIALOG SHOW STATE tDlg(DlgHide).Hndl, %SW_HIDE DIALOG SHOW STATE tDlg(DlgShow).Hndl, %SW_SHOW tDlg(DlgHide).Visable = 0 tDlg(DlgShow).Visable = 1 LastClick = CtlHnd CASE %IDC_SubjectLbl IF LastClick = CtlHnd THEN EXIT SELECT CONTROL SET COLOR DlgHnd, CtlHnd, %WHITE, RGB(128, 200, 128) CONTROL SET COLOR DlgHnd, LastClick, %BLACK, RGB(200, 128, 128) CONTROL REDRAW DlgHnd, CtlHnd CONTROL REDRAW DlgHnd, LastClick IF LastClick > %IDC_ViewCodeLbl THEN FOR I = 2 TO Ubnd IF tDlg(I).Visable THEN DlgHide = I EXIT FOR END IF NEXT I ELSE DlgHide = LastClick - %IDC_CatLbl + 2 END IF DlgShow = CtlHnd - %IDC_CatLbl + 2 DIALOG SHOW STATE tDlg(DlgHide).Hndl, %SW_HIDE DIALOG SHOW STATE tDlg(DlgShow).Hndl, %SW_SHOW tDlg(DlgHide).Visable = 0 tDlg(DlgShow).Visable = 1 LastClick = CtlHnd CASE %IDC_TitleLbl IF LastClick = CtlHnd THEN EXIT SELECT CONTROL SET COLOR DlgHnd, CtlHnd, %WHITE, RGB(128, 200, 128) CONTROL SET COLOR DlgHnd, LastClick, %BLACK, RGB(200, 128, 128) CONTROL REDRAW DlgHnd, CtlHnd CONTROL REDRAW DlgHnd, LastClick IF LastClick > %IDC_ViewCodeLbl THEN FOR I = 2 TO Ubnd IF tDlg(I).Visable THEN DlgHide = I EXIT FOR END IF NEXT I ELSE DlgHide = LastClick - %IDC_CatLbl + 2 END IF DlgShow = CtlHnd - %IDC_CatLbl + 2 DIALOG SHOW STATE tDlg(DlgHide).Hndl, %SW_HIDE DIALOG SHOW STATE tDlg(DlgShow).Hndl, %SW_SHOW tDlg(DlgHide).Visable = 0 tDlg(DlgShow).Visable = 1 LastClick = CtlHnd CASE %IDC_ViewCodeLbl IF LastClick = CtlHnd THEN EXIT SELECT CONTROL SET COLOR DlgHnd, CtlHnd, %WHITE, RGB(128, 200, 128) CONTROL SET COLOR DlgHnd, LastClick, %BLACK, RGB(200, 128, 128) CONTROL REDRAW DlgHnd, CtlHnd CONTROL REDRAW DlgHnd, LastClick IF LastClick > %IDC_ViewCodeLbl THEN FOR I = 2 TO Ubnd IF tDlg(I).Visable THEN DlgHide = I EXIT FOR END IF NEXT I ELSE DlgHide = LastClick - %IDC_CatLbl + 2 END IF DlgShow = CtlHnd - %IDC_CatLbl + 2 DIALOG SHOW STATE tDlg(DlgHide).Hndl, %SW_HIDE DIALOG SHOW STATE tDlg(DlgShow).Hndl, %SW_SHOW tDlg(DlgHide).Visable = 0 tDlg(DlgShow).Visable = 1 LastClick = CtlHnd CASE %IDC_ExtractCodeLbl IF LastClick = CtlHnd THEN EXIT SELECT CONTROL SET COLOR DlgHnd, CtlHnd, %WHITE, RGB(128, 200, 128) CONTROL SET COLOR DlgHnd, LastClick, %BLACK, RGB(200, 128, 128) CONTROL REDRAW DlgHnd, CtlHnd CONTROL REDRAW DlgHnd, LastClick LastClick = CtlHnd CASE %IDC_AddCodeLbl IF LastClick = CtlHnd THEN EXIT SELECT CONTROL SET COLOR DlgHnd, CtlHnd, %WHITE, RGB(128, 200, 128) CONTROL SET COLOR DlgHnd, LastClick, %BLACK, RGB(200, 128, 128) CONTROL REDRAW DlgHnd, CtlHnd CONTROL REDRAW DlgHnd, LastClick LastClick = CtlHnd CASE %IDC_SearchLbl IF LastClick = CtlHnd THEN EXIT SELECT CONTROL SET COLOR DlgHnd, CtlHnd, %WHITE, RGB(128, 200, 128) CONTROL SET COLOR DlgHnd, LastClick, %BLACK, RGB(200, 128, 128) CONTROL REDRAW DlgHnd, CtlHnd CONTROL REDRAW DlgHnd, LastClick LastClick = CtlHnd END SELECT FUNCTION = 1 END SELECT CASE %WM_DLG_MESS END SELECT END FUNCTION '------------------------------------------------------------------------------ '------------------------------------------------------------------------------ CALLBACK FUNCTION ShowDIALOG2Proc() LOCAL DlgHnd AS DWORD DlgHnd = CBHNDL SELECT CASE AS LONG CBMSG CASE %WM_INITDIALOG ' Initialization handler CASE %WM_NCACTIVATE STATIC hWndSaveFocus AS DWORD IF ISFALSE CBWPARAM THEN ' Save control focus hWndSaveFocus = GetFocus() ELSEIF hWndSaveFocus THEN ' Restore control focus SetFocus(hWndSaveFocus) hWndSaveFocus = 0 END IF CASE %WM_COMMAND ' Process control notifications SELECT CASE AS LONG CBCTL CASE %IDC_CatLstBx END SELECT END SELECT END FUNCTION '------------------------------------------------------------------------------ '------------------------------------------------------------------------------ CALLBACK FUNCTION ShowDIALOG3Proc() SELECT CASE AS LONG CBMSG CASE %WM_INITDIALOG ' Initialization handler CASE %WM_NCACTIVATE STATIC hWndSaveFocus AS DWORD IF ISFALSE CBWPARAM THEN ' Save control focus hWndSaveFocus = GetFocus() ELSEIF hWndSaveFocus THEN ' Restore control focus SetFocus(hWndSaveFocus) hWndSaveFocus = 0 END IF CASE %WM_COMMAND ' Process control notifications SELECT CASE AS LONG CBCTL CASE %IDC_SubjectLstBx END SELECT END SELECT END FUNCTION '------------------------------------------------------------------------------ '------------------------------------------------------------------------------ CALLBACK FUNCTION ShowDIALOG4Proc() SELECT CASE AS LONG CBMSG CASE %WM_INITDIALOG ' Initialization handler CASE %WM_NCACTIVATE STATIC hWndSaveFocus AS DWORD IF ISFALSE CBWPARAM THEN ' Save control focus hWndSaveFocus = GetFocus() ELSEIF hWndSaveFocus THEN ' Restore control focus SetFocus(hWndSaveFocus) hWndSaveFocus = 0 END IF CASE %WM_COMMAND ' Process control notifications SELECT CASE AS LONG CBCTL END SELECT END SELECT END FUNCTION '------------------------------------------------------------------------------ '------------------------------------------------------------------------------ FUNCTION SampleListBox(BYVAL hDlg AS DWORD, BYVAL lID AS LONG, BYVAL lCount _ AS LONG) AS LONG LOCAL i AS LONG FOR i = 1 TO lCount LISTBOX ADD hDlg, lID, USING$("Test Item #", i) NEXT i END FUNCTION '------------------------------------------------------------------------------ '------------------------------------------------------------------------------ FUNCTION ShowDIALOG1(BYVAL hParent AS DWORD) AS LONG LOCAL lRslt AS LONG LOCAL hDlg AS DWORD DIALOG NEW hParent, ".BAS Code Wrapper", 61, 63, 350, 228, %WS_POPUP OR _ %WS_BORDER OR %WS_DLGFRAME OR %WS_THICKFRAME OR %WS_CAPTION OR _ %WS_SYSMENU OR %WS_MINIMIZEBOX OR %WS_MAXIMIZEBOX OR %WS_CLIPSIBLINGS OR _ %WS_CLIPCHILDREN OR %WS_VISIBLE OR %DS_SYSMODAL OR %DS_MODALFRAME OR _ %DS_SETFOREGROUND OR %DS_3DLOOK OR %DS_NOFAILCREATE OR %DS_SETFONT, _ %WS_EX_CONTROLPARENT OR %WS_EX_LEFT OR %WS_EX_LTRREADING OR _ %WS_EX_RIGHTSCROLLBAR, TO hDlg CONTROL ADD LABEL, hDlg, %IDC_CatLbl, "Category", 0, 0, 50, 15, %WS_CHILD _ OR %WS_VISIBLE OR %WS_TABSTOP OR %SS_CENTER OR %SS_NOTIFY, _ %WS_EX_STATICEDGE OR %WS_EX_DLGMODALFRAME OR %WS_EX_LEFT OR _ %WS_EX_LTRREADING CONTROL ADD LABEL, hDlg, %IDC_SubjectLbl, "Subject", 50, 0, 50, 15, _ %WS_CHILD OR %WS_VISIBLE OR %WS_TABSTOP OR %SS_CENTER OR %SS_NOTIFY, _ %WS_EX_STATICEDGE OR %WS_EX_DLGMODALFRAME OR %WS_EX_LEFT OR _ %WS_EX_LTRREADING CONTROL ADD LABEL, hDlg, %IDC_TitleLbl, "Title", 100, 0, 50, 15, %WS_CHILD _ OR %WS_VISIBLE OR %WS_TABSTOP OR %SS_CENTER OR %SS_NOTIFY, _ %WS_EX_STATICEDGE OR %WS_EX_DLGMODALFRAME OR %WS_EX_LEFT OR _ %WS_EX_LTRREADING CONTROL ADD LABEL, hDlg, %IDC_ViewCodeLbl, "View Code", 150, 0, 50, 15, _ %WS_CHILD OR %WS_VISIBLE OR %WS_TABSTOP OR %SS_CENTER OR %SS_NOTIFY, _ %WS_EX_STATICEDGE OR %WS_EX_DLGMODALFRAME OR %WS_EX_LEFT OR _ %WS_EX_LTRREADING CONTROL ADD LABEL, hDlg, %IDC_ExtractCodeLbl, "Extract Code", 200, 0, 50, _ 15, %WS_CHILD OR %WS_VISIBLE OR %WS_TABSTOP OR %SS_CENTER OR %SS_NOTIFY, _ %WS_EX_STATICEDGE OR %WS_EX_DLGMODALFRAME OR %WS_EX_LEFT OR _ %WS_EX_LTRREADING CONTROL ADD LABEL, hDlg, %IDC_AddCodeLbl, "Add Code", 250, 0, 50, 15, _ %WS_CHILD OR %WS_VISIBLE OR %WS_TABSTOP OR %SS_CENTER OR %SS_NOTIFY, _ %WS_EX_STATICEDGE OR %WS_EX_DLGMODALFRAME OR %WS_EX_LEFT OR _ %WS_EX_LTRREADING CONTROL ADD LABEL, hDlg, %IDC_SearchLbl, "Search", 300, 0, 50, 15, _ %WS_CHILD OR %WS_VISIBLE OR %WS_TABSTOP OR %SS_CENTER OR %SS_NOTIFY, _ %WS_EX_STATICEDGE OR %WS_EX_DLGMODALFRAME OR %WS_EX_LEFT OR _ %WS_EX_LTRREADING tDlg(1).Hndl = hDlg tDlg(1).Order = 1 tDlg(1).Visable = 1 ShowDialog2(hDlg) ShowDialog3(hDlg) ShowDialog4(hDlg) ShowDialog5(hDlg) DIALOG SHOW MODAL hDlg, CALL ShowDIALOG1Proc TO lRslt FUNCTION = lRslt END FUNCTION '------------------------------------------------------------------------------ '------------------------------------------------------------------------------ FUNCTION ShowDIALOG2(BYVAL hParent AS DWORD) AS LONG LOCAL lRslt AS LONG LOCAL hDlg AS DWORD DIALOG NEW hParent, "Categories", 65, 60, 380, 237, %WS_CHILD OR _ %WS_CLIPSIBLINGS OR %WS_VISIBLE OR %DS_CONTROL OR %DS_3DLOOK OR _ %DS_NOFAILCREATE OR %DS_SETFONT, %WS_EX_CONTROLPARENT OR %WS_EX_LEFT OR _ %WS_EX_LTRREADING OR %WS_EX_RIGHTSCROLLBAR, TO hDlg CONTROL ADD LISTBOX, hDlg, %IDC_CatLstBx, , 0, 0, 380, 235, %WS_CHILD OR _ %WS_VISIBLE OR %WS_TABSTOP OR %WS_VSCROLL OR %LBS_NOTIFY OR _ %LBS_HASSTRINGS, %WS_EX_LEFT OR %WS_EX_LTRREADING OR _ %WS_EX_RIGHTSCROLLBAR CONTROL SET COLOR hDlg, %IDC_CatLstBx, %BLUE, -1 tDlg(2).Hndl = hDlg tDlg(2).Order = 2 tDlg(2).Visable = 0 SampleListBox hDlg, %IDC_CatLstBx, 30 DIALOG SHOW STATE hDlg, %SW_HIDE DIALOG SHOW MODELESS hDlg, CALL ShowDIALOG2Proc TO lRslt FUNCTION = lRslt END FUNCTION '------------------------------------------------------------------------------ '------------------------------------------------------------------------------ FUNCTION ShowDIALOG3(BYVAL hParent AS DWORD) AS LONG LOCAL lRslt AS LONG LOCAL hDlg AS DWORD DIALOG NEW hParent, "Subject", 121, 114, 330, 172, %WS_CHILD OR _ %WS_CLIPSIBLINGS OR %WS_VISIBLE OR %DS_CONTROL OR %DS_3DLOOK OR _ %DS_NOFAILCREATE OR %DS_SETFONT, %WS_EX_LEFT OR %WS_EX_LTRREADING OR _ %WS_EX_RIGHTSCROLLBAR, TO hDlg CONTROL ADD LISTBOX, hDlg, %IDC_SubjectLstBx, , 0, 0, 330, 170, %WS_CHILD OR _ %WS_VISIBLE OR %WS_TABSTOP OR %WS_VSCROLL OR %LBS_NOTIFY, %WS_EX_LEFT OR _ %WS_EX_LTRREADING OR %WS_EX_RIGHTSCROLLBAR SampleListBox hDlg, %IDC_SubjectLstBx, 30 tDlg(3).Hndl = hDlg tDlg(3).Order = 3 tDlg(3).Visable = 0 DIALOG SHOW STATE hDlg, %SW_HIDE DIALOG SHOW MODELESS hDlg, CALL ShowDIALOG3Proc TO lRslt FUNCTION = lRslt END FUNCTION '------------------------------------------------------------------------------ '------------------------------------------------------------------------------ FUNCTION ShowDIALOG4(BYVAL hParent AS DWORD) AS LONG LOCAL lRslt AS LONG LOCAL hDlg AS DWORD DIALOG NEW hParent, "Title", 101, 70, 100, 100, %WS_CHILD OR _ %WS_CLIPSIBLINGS OR %WS_VISIBLE OR %DS_CONTROL OR %DS_3DLOOK OR _ %DS_NOFAILCREATE OR %DS_SETFONT, %WS_EX_LEFT OR %WS_EX_LTRREADING OR _ %WS_EX_RIGHTSCROLLBAR, TO hDlg CONTROL ADD LISTBOX, hDlg, %IDC_TitleLstBx, , 0, 0, 100, 100, %WS_CHILD OR _ %WS_VISIBLE OR %WS_TABSTOP OR %WS_VSCROLL OR %LBS_NOTIFY, %WS_EX_LEFT OR _ %WS_EX_LTRREADING OR %WS_EX_RIGHTSCROLLBAR CONTROL SET COLOR hDlg, %IDC_TitleLstBx, RGB(0, 0, 128), %WHITE SampleListBox hDlg, %IDC_TitleLstBx, 30 tDlg(4).Hndl = hDlg tDlg(4).Order = 4 tDlg(4).Visable = 0 DIALOG SHOW MODELESS hDlg, CALL ShowDIALOG4Proc TO lRslt FUNCTION = lRslt END FUNCTION '------------------------------------------------------------------------------ '------------------------------------------------------------------------------ SUB Get_FileName(BYVAL Flag AS BYTE, Fname$) STATIC Last_Name AS STRING 'save last palette name STATIC Last_Dir AS STRING 'save last palette directory STATIC Current_Dir AS STRING 'save program directory STATIC Current_Drv AS STRING * 1 LOCAL Default_Extn AS STRING 'default extention for saving files LOCAL Caption AS STRING 'dialog caption LOCAL FileFilter AS STRING 'filter of list box in file dialog LOCAL FileStyle AS LONG 'flags for getting files LOCAL FilePicked AS LONG IF Current_Dir$ = "" THEN Current_Dir$ = CURDIR$ Current_Drv$ = CURDIR$ END IF SELECT CASE Flag CASE 1 Caption$ = "Add File" FileFilter$ = "Code Files (*.BAS, *.INC, *.BI, *.TXT, *.RC)" + _ "|*.BAS;*.INC;*.BI;*.RC|All Files (*.*)|*.*" FileStyle = %OFN_FILEMUSTEXIST OR %OFN_HIDEREADONLY OR %OFN_LONGNAMES OR %OFN_PATHMUSTEXIST Default_Extn$ = "BAS" FilePicked = OpenFileDialog (FilePicked, _ ' parent window Caption$, _ ' caption Last_Name$, _ ' filename Last_Dir$, _ ' start directory FileFilter$, _ ' filename filter Default_Extn$, _ ' default extension FileStyle) ' File Flags ' IF FilePicked THEN CALL Load_File(Flag, Last_Pal_Name$) IF FilePicked THEN FOR I = 2 TO 5 IF tDlg(I).Visable THEN DIALOG SHOW STATE tDlg(I).Hndl, %SW_HIDE DIALOG SHOW STATE tDlg(5).Hndl, %SW_SHOW EXIT FOR END IF NEXT I END IF CASE 2 Caption$ = "Extract File to ?" FileFilter$ = "Code Files (*.BAS, *.INC, *.BI, *.TXT, *.RC)" + _ "|*.BAS;*.INC;*.BI;*.RC|All Files (*.*)|*.*" FileStyle = %OFN_HIDEREADONLY OR %OFN_LONGNAMES Default_Extn$ = "BAS" FilePicked = SaveFileDialog (FilePicked, _ ' parent window Caption$, _ ' caption Last_Name$, _ ' filename Last_Dir$, _ ' start directory FileFilter$, _ ' filename filter Default_Extn$, _ ' default extension FileStyle) ' File Flags 'when using the default_extn parameter in the call to the savefiledialog, 'the windows file dialog will append the default extension to the file 'name even if the user has supplied an extension. Therefore, the below 'code removes the appended default extension if there is more than one IF FilePicked THEN IF Trim_Name(Last_Pal_Name$, Default_Extn$) THEN EXIT IF ' CALL Save_File(Flag, Last_Pal_Name$) END IF END SELECT FilePicked = INSTR(-1, Last_Name$, ANY "/\") IF FilePicked THEN Last_Name$ = MID$(Last_Name$, FilePicked +1) END IF END SUB '------------------------------------------------------------------- '------------------------------------------------------------------- FUNCTION Trim_Name(Fname AS STRING, Default_Extn AS STRING) AS LONG LOCAL Nlen AS LONG LOCAL FileStyle AS LONG 'when using the default_extn parameter in the call to the savefiledialog, 'the windows file dialog will append the default extension to the file 'name even if the user has supplied an extension. Therefore, the below 'code removes the appended default extension if there is more than one IF PARSECOUNT(FName$, ".") > 2 THEN Default_Extn$ = "." + Default_Extn$ FName$ = REMOVE$(FName$, Default_Extn$) END IF Nlen = LEN(DIR$(FName$)) 'check for existing file IF Nlen THEN 'if the file exists ask for overwrite instructions FileStyle = %MB_YESNO OR %MB_TASKMODAL OR %MB_DEFBUTTON1 Nlen = MSGBOX("Overwright " + FName$ + "?", FileStyle, "File Exists") IF (Nlen AND %IDNO) = %IDNO THEN Nlen = 1 ELSE Nlen = 0 END IF FUNCTION = Nlen END FUNCTION '------------------------------------------------------------------------------- '------------------------------------------------------------------------------- CALLBACK FUNCTION ShowDIALOG5Proc() SELECT CASE AS LONG CBMSG CASE %WM_INITDIALOG ' Initialization handler CASE %WM_NCACTIVATE STATIC hWndSaveFocus AS DWORD IF ISFALSE CBWPARAM THEN ' Save control focus hWndSaveFocus = GetFocus() ELSEIF hWndSaveFocus THEN ' Restore control focus SetFocus(hWndSaveFocus) hWndSaveFocus = 0 END IF CASE %WM_COMMAND ' Process control notifications SELECT CASE AS LONG CBCTL CASE %IDC_ViewCodeTxtbx END SELECT END SELECT END FUNCTION '-------------------------------------------------------------------------------- '-------------------------------------------------------------------------------- FUNCTION ShowDIALOG5(BYVAL hParent AS DWORD) AS LONG LOCAL lRslt AS LONG LOCAL hDlg AS DWORD DIALOG NEW hParent, "View Code", 101, 70, 391, 218, %WS_CHILD OR _ %WS_CLIPSIBLINGS OR %WS_CLIPCHILDREN OR %WS_VISIBLE OR %DS_CONTROL OR _ %DS_3DLOOK OR %DS_NOFAILCREATE OR %DS_SETFONT, %WS_EX_LEFT OR _ %WS_EX_LTRREADING OR %WS_EX_RIGHTSCROLLBAR, TO hDlg CONTROL ADD TEXTBOX, hDlg, %IDC_ViewCodeTxtbx, "View Code", 0, 0, 390, 215, _ %WS_CHILD OR %WS_VISIBLE OR %WS_TABSTOP OR %WS_VSCROLL OR %ES_LEFT OR _ %ES_MULTILINE OR %ES_AUTOVSCROLL, %WS_EX_LEFT OR %WS_EX_LTRREADING OR _ %WS_EX_RIGHTSCROLLBAR tDlg(5).Hndl = hDlg tDlg(5).Visable = 0 tDlg(5).Order = 5 DIALOG SHOW STATE hDlg, %SW_HIDE DIALOG SHOW MODELESS hDlg, CALL ShowDIALOG5Proc TO lRslt FUNCTION = lRslt END FUNCTION '------------------------------------------------------------------- '------------------------------------------------------------------- FUNCTION Check_Click(BYVAL LbL AS DWORD, BYVAL LastClick AS LONG, _ DlgHide AS BYTE, DlgShow AS BYTE, NewClick AS BYTE) AS LONG LOCAL Ubd AS LONG ' IF (LastClick + %IDC_CatLbl - 1) = Lbl THEN Check_Click = 1 EXIT FUNCTION END IF Ubd = UBOUND(tDlg) IF (LastClick + %IDC_CatLbl - 1) > %IDC_ViewCodeLbl THEN FOR J = 2 TO Ubd IF tDlg(J).Visable = 1 THEN DlgHide = J EXIT FOR END IF NEXT J DlgShow = Lbl - %IDC_CatLbl + 2 ELSE DlgHide = LastClick + 1 DlgShow = Lbl - %IDC_CatLbl + 2 IF DlgHide = DlgShow THEN Check_Click = 1 EXIT FUNCTION END IF END IF Check_Click = 0 END FUNCTION
Comment