Announcement

Collapse

Forum Guidelines

This forum is for finished source code that is working properly. If you have questions about this or any other source code, please post it in one of the Discussion Forums, not here.
See more
See less

Quikee PBR Creator using EZGUI Freeware DDT

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Quikee PBR Creator using EZGUI Freeware DDT

    Folks,
    I spotted an EZGUI Designer version on the EZGUI forum and decided to create a 'FREEWARE DDT' version so others can benefit.
    The idea was dreamed up by Ivan (sorry no last name on forum).

    This little program creates a PowerBASIC PBR using RC.exe and PBRES.exe from the information you enter.

    Code:
    ' *************************************************************
    '       Code Generated by EZGUI Freeware Dialog Designer
    ' *************************************************************
    
    #COMPILE EXE
    #REGISTER NONE
    #DIM ALL          '  This is helpful to prevent errors in coding
    
    
     ' Remark out the Constants for Controls you Will use in your program !
    
     %NOANIMATE    = 1
     %NOBUTTON     = 1
     %NOCOMBO      = 1
     %NODRAGLIST   = 1
     %NOHEADER     = 1
     %NOIMAGELIST  = 1
     %NOLIST       = 1
     '    %NOLISTVIEW   = 1
     '    %NOSTATUSBAR  = 1
     '    %NOTABCONTROL = 1
     '    %NOTOOLBAR    = 1
     '    %NOTOOLTIPS   = 1
     %NOTRACKBAR   = 1
     '    %NOTREEVIEW   = 1
     '    %NOUPDOWN     = 1
    #INCLUDE "win32api.inc"   ' Must come first before other include files !
    #INCLUDE "commctrl.inc"  ' The Common Controls include file !
    ' *************************************************************
    
    ' *************************************************************
    '              EZGUI Library Constants and Declares
    ' *************************************************************
    
    DECLARE SUB EZLIB_InitFonts()
    DECLARE SUB EZLIB_DeleteFonts()
    DECLARE SUB EZLIB_FixSize(BYVAL hDlg&, BYVAL Style&, BYVAL HasMenu&)
    DECLARE FUNCTION EZLIB_IsTooltip(BYVAL lParam AS LONG) AS LONG
    DECLARE FUNCTION EZLIB_TooltipID(BYVAL lParam AS LONG) AS LONG
    DECLARE SUB EZLIB_SetTooltipText(BYVAL lParam AS LONG, TipText$)
    DECLARE FUNCTION EZLIB_IsTab(BYVAL lParam AS LONG) AS LONG
    DECLARE FUNCTION EZLIB_TabID(BYVAL lParam AS LONG) AS LONG
    DECLARE FUNCTION EZLIB_TabNum(BYVAL lParam AS LONG) AS LONG
    DECLARE SUB EZLIB_AddTabs(BYVAL hDlg AS LONG, BYVAL IDNum&, BYVAL TabText$)
    DECLARE SUB EZLIB_DefColors()
    DECLARE SUB EZLIB_DeleteBrushes()
    DECLARE FUNCTION EZLIB_QBColor(N&) AS LONG
    DECLARE SUB EZLIB_ShowControl(BYVAL hWnd&, BYVAL ID&, BYVAL SFlag&)
    
    ' *************************************************************
    '              Application Constants and Declares
    ' *************************************************************
    
    %MAIN_LABEL5             = 100
    %MAIN_LABEL4             = 105
    %MAIN_LABEL3             = 110
    %MAIN_LABEL2             = 115
    %MAIN_LABEL6             = 120
    %MAIN_LABEL1             = 125
    %MAIN_TEXT1              = 130
    %MAIN_TEXT2              = 135
    %MAIN_TEXT3              = 140
    %MAIN_TEXT4              = 145
    %MAIN_TEXT5              = 150
    %MAIN_TEXT6              = 155
    %MAIN_BUTTON1            = 1
    %MAIN_BUTTON2            = 160
    ' --------------------------------------------------
    DECLARE SUB ShowDialog_Main(BYVAL hParent&)
    DECLARE CALLBACK FUNCTION Main_DLGPROC
    ' --------------------------------------------------
    ' ------------------------------------------------
    
    DECLARE CALLBACK FUNCTION CBF_MAIN_TEXT1()
    DECLARE CALLBACK FUNCTION CBF_MAIN_TEXT2()
    DECLARE CALLBACK FUNCTION CBF_MAIN_TEXT3()
    DECLARE CALLBACK FUNCTION CBF_MAIN_TEXT4()
    DECLARE CALLBACK FUNCTION CBF_MAIN_TEXT5()
    DECLARE CALLBACK FUNCTION CBF_MAIN_TEXT6()
    DECLARE CALLBACK FUNCTION CBF_MAIN_BUTTON1()
    DECLARE CALLBACK FUNCTION CBF_MAIN_BUTTON2()
    
    
    ' (1) Put NEXT DIALOG Constant and Declare code after here :
    
    
    ' *************************************************************
    '            Application Global Variables and Types
    ' *************************************************************
    'Create PBR Globals
    GLOBAL ResName$        'Filename with extension .RC
    GLOBAL ResNameX$       'Contents of Filename textbox
    GLOBAL ResName1$       'Filename with extension .RES
    GLOBAL Location$       'Path of the PBR file to be created
    GLOBAL Item$           'RC file contents
    
    'EZ_DDT globals
    GLOBAL App_Brush&()
    GLOBAL App_Color&()
    GLOBAL App_Font&()
    
    
    GLOBAL hMain&    ' Dialog handle
    
    
    ' (2) Put NEXT DIALOG Globals code after here :
    
    ' *************************************************************
    '                    Application Entrance
    ' *************************************************************
    
    FUNCTION PBMAIN
        LOCAL Count&
        LOCAL CC1 AS INIT_COMMON_CONTROLSEX
    
        CC1.dwSize=SIZEOF(CC1)
        CC1.dwICC=%ICC_WIN95_CLASSES
        InitCommonControlsEX CC1
        EZLIB_DefColors
        EZLIB_InitFonts
    
        ShowDialog_Main 0
        DO
            DIALOG DOEVENTS TO Count&
        LOOP UNTIL Count&=0
    
    
        EZLIB_DeleteBrushes
        EZLIB_DeleteFonts
    END FUNCTION
    
    
    ' *************************************************************
    '                    Application Dialogs
    ' *************************************************************
    
    SUB ShowDialog_Main(BYVAL hParent&)
        LOCAL Style&, ExStyle&
        LOCAL N&, CT&        '  Variables used for Reading Data in Arrays for Listbox and Combobox
        '   hParent& = 0 if no parent Dialog
        Style& = %WS_POPUP OR %DS_MODALFRAME OR %WS_CAPTION OR %WS_MINIMIZEBOX OR %WS_SYSMENU OR %DS_CENTER
        ExStyle& = 0
        DIALOG NEW hParent&, "Designed by Ivan", 0, 0,  309,  236, Style&, ExStyle& TO hMain&
        EZLIB_FixSize hMain&, Style&, 0
        ' Layer # 0
        CONTROL ADD LABEL, hMain&,  %MAIN_LABEL5,  "Items you wish to add to your resource:", 3, 118, 235, 10
        CONTROL SEND hMain&,  %MAIN_LABEL5, %WM_SETFONT, App_Font&(2), %TRUE
        CONTROL ADD LABEL, hMain&,  %MAIN_LABEL4,  "(e.g. c:\Masterpiece)", 208, 42, 80, 12, _
            %WS_CHILD OR %WS_VISIBLE OR %SS_CENTER
        CONTROL ADD LABEL, hMain&,  %MAIN_LABEL3,  "Save To This Folder:", 3, 42, 69, 12
        CONTROL ADD LABEL, hMain&,  %MAIN_LABEL2,  "8 letters max. (e.g. MyRes)", 213, 27, 93, 15
        CONTROL ADD LABEL, hMain&,  %MAIN_LABEL6,  "Quikee PBR Creator", 0, 5, 301, 20, _
            %WS_CHILD OR %WS_VISIBLE OR %SS_CENTER
        CONTROL SEND hMain&,  %MAIN_LABEL6, %WM_SETFONT, App_Font&(0), %TRUE
        CONTROL ADD LABEL, hMain&,  %MAIN_LABEL1,  "Resource File Name:", 75, 27, 80, 12, _
            %WS_CHILD OR %WS_VISIBLE OR %SS_CENTER
        CONTROL ADD TEXTBOX, hMain&,  %MAIN_TEXT1,  "", 155, 27, 53, 12, _
            %WS_CHILD OR %WS_VISIBLE OR %ES_AUTOHSCROLL OR %WS_TABSTOP, _
            %WS_EX_CLIENTEDGE CALL CBF_MAIN_TEXT1
        CONTROL ADD TEXTBOX, hMain&,  %MAIN_TEXT2,  "", 75, 42, 133, 12, _
            %WS_CHILD OR %WS_VISIBLE OR %ES_AUTOHSCROLL OR %WS_TABSTOP, _
            %WS_EX_CLIENTEDGE CALL CBF_MAIN_TEXT2
        CONTROL ADD TEXTBOX, hMain&,  %MAIN_TEXT3,  "Usage:   myName icon discardable  ''myName.ico''", 3, 64, 165, 10, _
            %WS_CHILD OR %WS_VISIBLE OR %ES_AUTOHSCROLL CALL CBF_MAIN_TEXT3
        CONTROL ADD TEXTBOX, hMain&,  %MAIN_TEXT4,  "myName bitmap discardable ''c:\bitmaps\myBitmap.bmp''", 32, 74, 184, 12, _
            %WS_CHILD OR %WS_VISIBLE OR %ES_READONLY OR %ES_LEFT CALL CBF_MAIN_TEXT4
        CONTROL ADD TEXTBOX, hMain&,  %MAIN_TEXT5,  "", 3, 128, 301, 76, _
            %WS_CHILD OR %WS_VISIBLE OR %ES_MULTILINE OR %ES_WANTRETURN OR %ES_LEFT OR %ES_AUTOVSCROLL OR %WS_VSCROLL OR %ES_AUTOHSCROLL OR %WS_HSCROLL OR %WS_TABSTOP, _
            %WS_EX_CLIENTEDGE CALL CBF_MAIN_TEXT5
        CONTROL ADD TEXTBOX, hMain&,  %MAIN_TEXT6,  "Note: If RC.EXE and PBRES.EXE are placed in \Windows\System then you can use this                  program from any directory.", 3, 96, 296, 17, _
            %WS_CHILD OR %WS_VISIBLE OR %ES_MULTILINE OR %ES_WANTRETURN OR %ES_LEFT CALL CBF_MAIN_TEXT6
        CONTROL ADD "Button", hMain&,  %MAIN_BUTTON1,  "&Exit", 243, 214, 53, 15, _
            %WS_CHILD OR %WS_VISIBLE OR %BS_DEFPUSHBUTTON OR %WS_TABSTOP CALL CBF_MAIN_BUTTON1
        CONTROL ADD "Button", hMain&,  %MAIN_BUTTON2,  "&Create", 184, 214, 53, 15, _
            %WS_CHILD OR %WS_VISIBLE OR %BS_PUSHBUTTON OR %WS_TABSTOP CALL CBF_MAIN_BUTTON2
        DIALOG SHOW MODELESS hMain& , CALL Main_DLGPROC
    END SUB
    
    ' *************************************************************
    '                             Dialog Callback Procedure
    '                             for Form Main
    '                             uses Global Handle - hMain&
    ' *************************************************************
    
    CALLBACK FUNCTION Main_DLGPROC
        SELECT CASE CBMSG
            ' Common Windows Messages you may want to process
            ' -----------------------------------------------
            CASE %WM_TIMER
            CASE %WM_HSCROLL
            CASE %WM_VSCROLL
            CASE %WM_SIZE
            CASE %WM_CLOSE
            CASE %WM_DESTROY
            CASE %WM_SYSCOMMAND
            CASE %WM_PAINT
            ' -----------------------------------------------
            CASE %WM_CTLCOLORDLG
                IF CBLPARAM=CBHNDL THEN
                    ' Dialogs colors
                    SetTextColor CBWPARAM, App_Color&(0)
                    SetBkColor   CBWPARAM, App_Color&( 28)
                    FUNCTION=App_Brush&( 28)
                END IF
            CASE %WM_CTLCOLORMSGBOX , %WM_CTLCOLORBTN, %WM_CTLCOLOREDIT,_
                 %WM_CTLCOLORSTATIC, %WM_CTLCOLORSCROLLBAR, %WM_CTLCOLORLISTBOX
                ' Control colors
                SELECT CASE GetDlgCtrlID(CBLPARAM)
                    CASE  %MAIN_LABEL5
                        SetTextColor CBWPARAM, App_Color&( 4)
                        SetBkColor   CBWPARAM, App_Color&( 28)
                        FUNCTION=App_Brush&( 28)
                    CASE  %MAIN_LABEL4
                        SetTextColor CBWPARAM, App_Color&( 7)
                        SetBkColor   CBWPARAM, App_Color&( 28)
                        FUNCTION=App_Brush&( 28)
                    CASE  %MAIN_LABEL3
                        SetTextColor CBWPARAM, App_Color&( 1)
                        SetBkColor   CBWPARAM, App_Color&( 28)
                        FUNCTION=App_Brush&( 28)
                    CASE  %MAIN_LABEL2
                        SetTextColor CBWPARAM, App_Color&( 7)
                        SetBkColor   CBWPARAM, App_Color&( 28)
                        FUNCTION=App_Brush&( 28)
                    CASE  %MAIN_LABEL6
                        SetTextColor CBWPARAM, App_Color&( 12)
                        SetBkColor   CBWPARAM, App_Color&( 28)
                        FUNCTION=App_Brush&( 28)
                    CASE  %MAIN_LABEL1
                        SetTextColor CBWPARAM, App_Color&( 1)
                        SetBkColor   CBWPARAM, App_Color&( 28)
                        FUNCTION=App_Brush&( 28)
                    CASE  %MAIN_TEXT3
                        SetTextColor CBWPARAM, App_Color&( 1)
                        SetBkColor   CBWPARAM, App_Color&( 28)
                        FUNCTION=App_Brush&( 28)
                    CASE  %MAIN_TEXT4
                        SetTextColor CBWPARAM, App_Color&( 1)
                        SetBkColor   CBWPARAM, App_Color&( 28)
                        FUNCTION=App_Brush&( 28)
                    CASE  %MAIN_TEXT6
                        SetTextColor CBWPARAM, App_Color&( 9)
                        SetBkColor   CBWPARAM, App_Color&( 28)
                        FUNCTION=App_Brush&( 28)
                    CASE ELSE
                        FUNCTION=0
                END SELECT
            CASE %WM_NOTIFY
                IF EZLIB_IsTooltip(CBLPARAM) THEN
                    SELECT CASE EZLIB_TooltipID(CBLPARAM)
                        CASE  %MAIN_BUTTON1
                            EZLIB_SetTooltipText CBLPARAM, "Control -  %MAIN_BUTTON1"
                        CASE  %MAIN_BUTTON2
                            EZLIB_SetTooltipText CBLPARAM, "Control -  %MAIN_BUTTON2"
                        CASE ELSE
                    END SELECT
                END IF
                IF EZLIB_IsTab(CBLPARAM) THEN
                    SELECT CASE EZLIB_TabID(CBLPARAM)
                        CASE ELSE
                    END SELECT
                END IF
            CASE %WM_COMMAND
                ' Process Messages to Controls that have no Callback Function
                ' and Process Messages to Menu Items
                SELECT CASE CBCTL
                    CASE ELSE
                END SELECT
            CASE ELSE
        END SELECT
    END FUNCTION
    
    
    ' (3) Put NEXT DIALOG Creation / Dialog Procedure code after here :
    
    
    ' *************************************************************
    '              EZGUI Freeware Dialog Designer Library
    '
    '                   see web site at EZGUI.COM
    '
    ' Copyright (C) 2000, Christopher R. Boss , All Rights Reserved !
    '
    ' This code was Generated by the EZGUI Freeware Dialog Designer
    ' and may be used ROYALTY FREE, as long as this Copyright notice
    ' is kept with the source code.
    ' The Author also gives you the right to post this code on a
    ' web site and to distribute it to others.
    ' *************************************************************
    
    SUB EZLIB_InitFonts()
        REDIM App_Font(0 TO 5)
        App_Font(0)=GetStockObject(%SYSTEM_FONT)
        App_Font(1)=GetStockObject(%SYSTEM_FIXED_FONT)
        App_Font(2)=GetStockObject(%ANSI_VAR_FONT)
        App_Font(3)=GetStockObject(%ANSI_FIXED_FONT)
        App_Font(4)=GetStockObject(%DEFAULT_GUI_FONT)    ' MS Sans Serif
        App_Font(5)=GetStockObject(%OEM_FIXED_FONT)      ' Terminal Font
        END SUB
    
    ' -------------------------------------------------------------
    
    SUB EZLIB_DeleteFonts()
        LOCAL N&
        ' Fonts 0 to 5 do not need to be deleted
        FOR N&=6 TO UBOUND(App_Font)
            IF App_Font(N&)<>0 THEN DeleteObject App_Font(N&)
        NEXT N&
        END SUB
    
    ' -------------------------------------------------------------
    
    SUB EZLIB_FixSize(BYVAL hDlg&, BYVAL Style&, BYVAL HasMenu&)
        LOCAL X&, Y&, W&, H&, XX&, YY&
        DIALOG GET SIZE hDlg& TO X&, Y&
        IF (Style& AND %WS_CAPTION) = %WS_CAPTION THEN
            IF HasMenu& THEN
                H&=H&+GetSystemMetrics(%SM_CYCAPTION)
            END IF
        END IF
        IF (Style& AND %WS_HSCROLL) = %WS_HSCROLL THEN
            H&=H&+GetSystemMetrics(%SM_CYHSCROLL)
        END IF
        IF (Style& AND %WS_VSCROLL) = %WS_VSCROLL THEN
            W&=W&+GetSystemMetrics(%SM_CYVSCROLL)
        END IF
        DIALOG PIXELS hDlg&, W&, H& TO UNITS XX&, YY&
        X&=X&+XX&
        Y&=Y&+YY&
        DIALOG SET SIZE hDlg&, X&, Y&
    END SUB
    
    ' -------------------------------------------------------------
    
    FUNCTION EZLIB_IsTooltip(BYVAL lParam AS LONG) AS LONG
        LOCAL pNM AS NMHDR PTR
        pNM=lParam
        IF @pNM.code=%TTN_NEEDTEXT THEN FUNCTION=1 ELSE FUNCTION=0
    END FUNCTION
    
    ' -------------------------------------------------------------
    
    FUNCTION EZLIB_TooltipID(BYVAL lParam AS LONG) AS LONG
        LOCAL pNM AS NMHDR PTR, pTT AS TOOLTIPTEXT PTR
        LOCAL IDNum&, UF&
        IDNum&=0
        pNM=lParam
        IF @pNM.code=%TTN_NEEDTEXT THEN
            ' Check for Tooltip message
            pTT=lParam
            UF&[email protected] AND %TTF_IDISHWND
            IF UF&=%TTF_IDISHWND THEN
                IDNum&=GetDlgCtrlID(@pTT.hdr.idfrom)
            ELSE
                IDNum&[email protected]
            END IF
        END IF
        FUNCTION=IDNum&
    END FUNCTION
    
    ' -------------------------------------------------------------
    
    SUB EZLIB_SetTooltipText(BYVAL lParam AS LONG, TipText$)
        LOCAL pNM AS NMHDR PTR, pTT AS TOOLTIPTEXT PTR
        pNM=lParam
        IF @pNM.code=%TTN_NEEDTEXT THEN
            ' Check for Tooltip message
            pTT=lParam
            IF TipText$<>"" THEN
                @pTT.szText=LEFT$(TipText$, 79)+CHR$(0)
            END IF
        END IF
    END SUB
    
    ' -------------------------------------------------------------
    
    FUNCTION EZLIB_IsTab(BYVAL lParam AS LONG) AS LONG
        LOCAL pNM AS NMHDR PTR
        pNM=lParam
        IF @pNM.code=%TCN_SELCHANGE THEN FUNCTION=1 ELSE FUNCTION=0
    END FUNCTION
    
    ' -------------------------------------------------------------
    
    FUNCTION EZLIB_TabID(BYVAL lParam AS LONG) AS LONG
        LOCAL pNM AS NMHDR PTR
        LOCAL IDNum&
        pNM=lParam
        IF @pNM.code=%TCN_SELCHANGE THEN
            IDNum&[email protected]
        END IF
        FUNCTION=IDNum&
    END FUNCTION
    
    ' -------------------------------------------------------------
    
    FUNCTION EZLIB_TabNum(BYVAL lParam AS LONG) AS LONG
        LOCAL RV&, pNM AS NMHDR PTR
        LOCAL hCtrl AS LONG
        pNM=lParam
        IF @pNM.code=%TCN_SELCHANGE THEN
        [email protected]
            RV&=SendMessage(hCtrl, %TCM_GETCURSEL, 0, 0)+1
        END IF
        FUNCTION=RV&
    END FUNCTION
    
    ' -------------------------------------------------------------
    
    SUB EZLIB_AddTabs(BYVAL hDlg AS LONG, BYVAL IDNum&, BYVAL TabText$)
        LOCAL pItem AS TC_ITEM, hCtrl&
        LOCAL zText AS ASCIIZ*80
        LOCAL D$, P&, TB&
        IF IDNum&<>0 THEN
            hCtrl&=GetDlgItem(hDlg,IDNum&)
            IF hCtrl&<>0 THEN
                TB&=0
                DO
                    IF TabText$="" THEN EXIT DO
                    P&=INSTR(TabText$,"|")
                    IF P&>0 THEN
                        D$=LEFT$(TabText$,P&-1)
                        TabText$=MID$(TabText$,P&+1)
                    ELSE
                        D$=TabText$
                        IF TabText$="" THEN EXIT DO
                        TabText$=""
                    END IF
                    pItem.Mask=%TCIF_TEXT
                    zText=D$+CHR$(0)
                    pItem.pszText=VARPTR(zText)
                    SendMessage hCtrl&, %TCM_INSERTITEM, TB&, VARPTR(pItem)
                    TB&=TB&+1
                LOOP
            END IF
        END IF
    END SUB
    
    ' -------------------------------------------------------------
    
    SUB EZLIB_DefColors()
        LOCAL T&
        REDIM App_Brush&(0 TO 31)
        REDIM App_Color&(0 TO 31)
        FOR T&=0 TO 31
            App_Brush&(T&)=CreateSolidBrush(EZLIB_QBColor(T&))
            App_Color&(T&)=EZLIB_QBColor(T&)
        NEXT T&
    END SUB
    
    ' -------------------------------------------------------------
    
    SUB EZLIB_DeleteBrushes()
        LOCAL T&
        FOR T&=0 TO 31
            DeleteObject App_Brush&(T&)
        NEXT T&
    END SUB
    
    ' -------------------------------------------------------------
    
    FUNCTION EZLIB_QBColor(N&) AS LONG
        LOCAL RV&
        SELECT CASE N&
            CASE 0
            RV&=RGB(0,0,0)       ' Black
        CASE 1
            RV&=RGB(0,0,128)     ' Blue
        CASE 2
            RV&=RGB(0,128,0)     ' Green
        CASE 3
            RV&=RGB(0,128,128)   ' Cyan
        CASE 4
            RV&=RGB(196,0,0)     ' Red
        CASE 5
            RV&=RGB(128,0,128)   ' Magenta (Purple)
        CASE 6
            RV&=RGB(128,64,0)    ' Brown
        CASE 7
            RV&=RGB(196,196,196) ' White
        CASE 8
            RV&=RGB(128,128,128) ' Gray
        CASE 9
            RV&=RGB(0,0, 255)    ' Lt. Blue
        CASE 10
            RV&=RGB(0,255,0)     ' Lt. Green
        CASE 11
            RV&=RGB(0,255,255)   ' Lt. Cyan
        CASE 12
            RV&=RGB(255,0,0)     ' Lt. Red
        CASE 13
            RV&=RGB(255,0,255)   ' Lt. magenta (Purple)
        CASE 14
            RV&=RGB(255,255,0)   ' Yellow
        CASE 15
            RV&=RGB(255,255,255) ' Bright White
        CASE 16   ' - Extended QB colors Pastel version -
            RV&=RGB(164,164,164)
        CASE 17
            RV&=RGB(128,160,255)
        CASE 18
            RV&=RGB(160,255,160)
        CASE 19
            RV&=RGB(160,255,255)
        CASE 20
            RV&=RGB(255,160,160)
        CASE 21
            RV&=RGB(255,160,255)
        CASE 22
            RV&=RGB(255,255,160)
        CASE 23
            RV&=RGB(212,212,212)
        CASE 24
            RV&=RGB(180,180,180)
        CASE 25
            RV&=RGB(188,220,255)
        CASE 26
            RV&= RGB(220,255,220)
        CASE 27
            RV&=RGB(220,255,255)
        CASE 28
             ' RV&=RGB(255,220,220)   original
            RV&=RGB(225,248,239)  'this is the chosen background color
        CASE 29
            RV&=RGB(255,220,255)
        CASE 30
            RV&=RGB(255,255,220)
        CASE 31
            RV&=RGB(228,228,228)
        CASE ELSE
            RV&=RGB(0,0,0)
        END SELECT
        FUNCTION=RV&
    END FUNCTION
     ' -------------------------------------------------------------
    SUB EZLIB_ShowControl(BYVAL hWnd&, BYVAL ID&, BYVAL SFlag&)
        LOCAL hCtrl&
        IF IsWindow(hWnd&) THEN
            IF ID&<>0 THEN
                hCtrl&=GetDlgItem(hWnd&,ID&)
                IF SFlag&=0 THEN
                    ShowWindow hCtrl&, %SW_HIDE
                ELSE
                    ShowWindow hCtrl&, %SW_SHOW
                END IF
            END IF
        END IF
    END SUB
     ' -------------------------------------------------------------
    ' *************************************************************
    '             End of EZGUI Dynamic Dialogs Library
    ' *************************************************************
    
    
    ' *************************************************************
    '  Application Callback Functions (or Procedures) for Controls
    ' *************************************************************
    
    ' ------------------------------------------------
    CALLBACK FUNCTION CBF_MAIN_TEXT1
        IF CBCTLMSG=%EN_CHANGE THEN
    
        END IF
        IF CBCTLMSG=%EN_SETFOCUS THEN
    
        END IF
        IF CBCTLMSG=%EN_KILLFOCUS THEN
    
        END IF
    END FUNCTION
    ' ------------------------------------------------
    
    ' ------------------------------------------------
    CALLBACK FUNCTION CBF_MAIN_TEXT2
        IF CBCTLMSG=%EN_CHANGE THEN
    
        END IF
        IF CBCTLMSG=%EN_SETFOCUS THEN
    
        END IF
        IF CBCTLMSG=%EN_KILLFOCUS THEN
    
        END IF
    END FUNCTION
    ' ------------------------------------------------
    
    ' ------------------------------------------------
    CALLBACK FUNCTION CBF_MAIN_TEXT3
        IF CBCTLMSG=%EN_CHANGE THEN
    
        END IF
        IF CBCTLMSG=%EN_SETFOCUS THEN
    
        END IF
        IF CBCTLMSG=%EN_KILLFOCUS THEN
    
        END IF
    END FUNCTION
    ' ------------------------------------------------
    
    ' ------------------------------------------------
    CALLBACK FUNCTION CBF_MAIN_TEXT4
        IF CBCTLMSG=%EN_CHANGE THEN
    
        END IF
        IF CBCTLMSG=%EN_SETFOCUS THEN
    
        END IF
        IF CBCTLMSG=%EN_KILLFOCUS THEN
    
        END IF
    END FUNCTION
    ' ------------------------------------------------
    
    ' ------------------------------------------------
    CALLBACK FUNCTION CBF_MAIN_TEXT5
        IF CBCTLMSG=%EN_CHANGE THEN
    
        END IF
        IF CBCTLMSG=%EN_SETFOCUS THEN
    
        END IF
        IF CBCTLMSG=%EN_KILLFOCUS THEN
    
        END IF
    END FUNCTION
    ' ------------------------------------------------
    
    ' ------------------------------------------------
    CALLBACK FUNCTION CBF_MAIN_TEXT6
        IF CBCTLMSG=%EN_CHANGE THEN
    
        END IF
        IF CBCTLMSG=%EN_SETFOCUS THEN
    
        END IF
        IF CBCTLMSG=%EN_KILLFOCUS THEN
    
        END IF
    END FUNCTION
    ' ------------------------------------------------
    
    ' ------------------------------------------------
    CALLBACK FUNCTION CBF_MAIN_BUTTON1    'Exit button
        IF CBCTLMSG=%BN_CLICKED THEN
            DIALOG END CBHNDL, 0          ' Return 0
        END IF
        IF CBCTLMSG=%BN_SETFOCUS THEN
    
        END IF
        IF CBCTLMSG=%BN_KILLFOCUS THEN
    
        END IF
    END FUNCTION
    ' ------------------------------------------------
    
    ' ------------------------------------------------
    CALLBACK FUNCTION CBF_MAIN_BUTTON2    'Create button
        IF CBCTLMSG=%BN_CLICKED THEN
           CALL createResource()
        END IF
        IF CBCTLMSG=%BN_SETFOCUS THEN
    
        END IF
        IF CBCTLMSG=%BN_KILLFOCUS THEN
    
        END IF
    END FUNCTION
    ' ------------------------------------------------
    
    ' (4) Put NEXT DIALOG Callback / Subs code after here :
    
    ' *************************************************************
    '                     Put Your Code Here
    ' *************************************************************
    SUB CreateResource
        CONTROL GET TEXT hMain&,  %MAIN_TEXT1 TO ResNameX$
        ResName1$=ResNameX$+".res"
        ResName$=ResNameX$+".rc"
        CONTROL GET TEXT hMain&,  %MAIN_TEXT2 TO Location$
        Location$ = Location$ +"\"
        CONTROL GET TEXT hMain&,  %MAIN_TEXT5 TO Item$
        IF ResNameX$="" OR Location$="" OR Item$="" THEN
    
           MSGBOX "Please fill all fields",%MB_OK, "Quikee Resource Creator"
           CONTROL SET FOCUS hMain&,  %MAIN_TEXT1
        ELSE
           OPEN Location$+ResName$ FOR OUTPUT AS #1
           PRINT #1,Item$
           CLOSE #1
           SHELL "rc "+Location$+ResName$,2       'Resouces compiler
           SHELL "pbres "+Location$+ResName1$,2   'PowerBASIC RES file compiler
           MSGBOX UCASE$(Location$+ResNameX$+".PBR")+" has been created",%MB_OK, "Quikee Resource Creator"
        END IF
    END SUB
    ------------------
    "It was too lonely at the top".
Working...
X