Code:
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
'SHOWVARS.INC
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
'here is a handy little include file which will allow you to easily view
'a string, Single precision Float, or a Long Integer value during runtime,
'can be very helpful while debugging or designing.
'syntax:
'ShowVar "label", var
'ShowStr "label", string var
'ShowFlt "label", var
'(see following test.bas file for use)
'also should mention that the "label" label portion can be anything, and the
'routine checks for and updates on simalar labels so if you wish to check 
'the same variable before and after something you can just: as example; 
'ShowVar "before xxx", varA 
'do something
'ShowVar "after xxx", varA 
'do what-ever you wish with the code... Public Domain, by Brad Byrne 2004
'
GLOBAL hVDsp&,hSDsp&,hFDsp&

'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
FUNCTION ShowStr(Var_label$, Var_string$ )AS STRING
   STATIC ControlCount&
   LOCAL i&,CntrlText$,NewLbl$,MatchLbl&,yy&
   MatchLbl&=0: yy&=ControlCount&*10+22
   IF  ControlCount& = 0 THEN

    DIALOG NEW 0, "SHOW STRINGS DISPLAY",0,0,0,0,%ws_border , TO hSDsp&
    CONTROL ADD FRAME ,hSDsp&,1000,"Strings",2,1,130,yy&, %ss_sunken,
    SetWindowPos  hSDsp&, %HWND_TOPMOST,400,50, 137, yy&+4,0
    DIALOG SHOW MODELESS hSDsp&,
   END IF

       NewLbl$=Var_label$+"   :"
        FOR i&= 1 TO ControlCount&+1
          CONTROL GET TEXT hSDsp&,(1100+i&) TO CntrlText$
             IF CntrlText$= NewLbl$ THEN

                 CONTROL SET TEXT hSDsp&,(1200+i&),Var_string$
                 MatchLbl&=1
                 EXIT FOR
             END IF
        NEXT i&
        IF MatchLbl&=0   THEN

                 DIALOG SET SIZE hSDsp&,137,yy&+18
                 CONTROL SET SIZE hSDsp&,1000,130,yy&
                 CONTROL ADD LABEL ,hSDsp&,(1100+i&),NewLbl$,4,i&*10-10,60,10,%SS_RIGHT,
                 CONTROL ADD LABEL ,hSDsp&,(1200+i&),Var_string$,70,i&*10-10,60,10,,
                 INCR ControlCount&
        END IF

      SendMessage hSDsp&,%wm_paint,0,0
END FUNCTION
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
FUNCTION ShowVar(Var_label$, Var_value& ) AS LONG
   STATIC ControlCount&
   LOCAL i&,CntrlText$,NewLbl$,MatchLbl&,yy&
   MatchLbl&=0: yy&=ControlCount&*10+22
   IF  ControlCount& = 0 THEN

    DIALOG NEW 0, "SHOW VARIABLES DISPLAY",0,0,0,0,%ws_border , TO hVDsp&
    CONTROL ADD FRAME ,hVDsp&,1000,"Variables",2,1,130,yy&, %ss_sunken,
    SetWindowPos  hVDsp&, %HWND_TOPMOST,450,100, 137, yy&+4,0
    DIALOG SHOW MODELESS hVDsp&,
   END IF

       NewLbl$=Var_label$+"   :"
        FOR i&= 1 TO ControlCount&+1
          CONTROL GET TEXT hVDsp&,(1100+i&) TO CntrlText$
             IF CntrlText$= NewLbl$ THEN

                 CONTROL SET TEXT hVDsp&,(1200+i&),STR$(Var_value&)
                 MatchLbl&=1
                 EXIT FOR
             END IF
        NEXT i&
        IF MatchLbl&=0   THEN

                 DIALOG SET SIZE hVDsp&,137,yy&+18
                 CONTROL SET SIZE hVDsp&,1000,130,yy&
                 CONTROL ADD LABEL ,hVDsp&,(1100+i&),NewLbl$,4,i&*10-10,60,10,%SS_RIGHT,
                 CONTROL ADD LABEL ,hVDsp&,(1200+i&),STR$(Var_value&),70,i&*10-10,60,10,,
                 INCR ControlCount&
        END IF

      SendMessage hVDsp&,%wm_paint,0,0
END FUNCTION
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
FUNCTION ShowFlt(Var_label$, Var_value! ) AS LONG
   STATIC ControlCount&
   LOCAL i&,CntrlText$,NewLbl$,MatchLbl&,yy&
   MatchLbl&=0: yy&=ControlCount&*10+22
   IF  ControlCount& = 0 THEN

    DIALOG NEW 0, "SHOW FLOATS DISPLAY",0,0,0,0,%ws_border , TO hFDsp&
    CONTROL ADD FRAME ,hFDsp&,1000,"Single Floats",2,1,130,yy&, %ss_sunken,
    SetWindowPos  hFDsp&, %HWND_TOPMOST,500,150, 137, yy&+4,0
    DIALOG SHOW MODELESS hFDsp&, 'CALL Var_Dspl()

   END IF
       NewLbl$=Var_label$+"   :"
        FOR i&= 1 TO ControlCount&+1
          CONTROL GET TEXT hFDsp&,(1100+i&) TO CntrlText$
             IF CntrlText$= NewLbl$ THEN

                 CONTROL SET TEXT hFDsp&,(1200+i&),STR$(Var_value!)
                 MatchLbl&=1
                 EXIT FOR
             END IF

        NEXT i&
        IF MatchLbl&=0   THEN
                 DIALOG SET SIZE hFDsp&,137,yy&+18
                 CONTROL SET SIZE hFDsp&,1000,130,yy&
                 CONTROL ADD LABEL ,hFDsp&,(1100+i&),NewLbl$,4,i&*10-10,60,10,%SS_RIGHT,
                 CONTROL ADD LABEL ,hFDsp&,(1200+i&),STR$(Var_value!),70,i&*10-10,60,10,,

                 INCR ControlCount&
        END IF
      SendMessage hFDsp&,%wm_paint,0,0
END FUNCTION


'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
'test.bas
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
'a little test program to show how to use "SHOWVARS.INC"

#COMPILE EXE
#INCLUDE "WIN32API.INC"
#INCLUDE "SHOWVARS.INC"

GLOBAL hDlg&, Var1 AS SINGLE , txt$

'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CALLBACK FUNCTION CallBackFunc()
SELECT CASE CBMSG
    CASE %WM_COMMAND
      SELECT CASE CBCTL
         CASE 100
            CONTROL GET TEXT hDlg, 100 TO txt
            ShowStr "my text",txt
         CASE 200
 	    ShowFlt "Var1", Var1
            IF CBCTLMSG = %BN_CLICKED THEN

            Var1 = Var1 * 2.2
            ShowFlt "Var2", Var1
            END IF
        END SELECT
        CASE %WM_DESTROY
            PostQuitMessage 0
        FUNCTION = %TRUE

    END SELECT
END FUNCTION


FUNCTION PBMAIN
    LOCAL Msg AS tagmsg
    Var1 = 1.234567
    DIALOG NEW 0, "ShowVarTest",50,50,130,120, %ws_overlappedwindow, TO hDlg
    CONTROL ADD BUTTON ,hDlg,200,"Incr Float",30,20,70,30,%BS_FLAT
    CONTROL ADD TEXTBOX ,hDlg,100,"Change this",30,55,70,40, , %WS_EX_STATICEDGE
    DIALOG SHOW MODELESS hDlg, CALL CallBackFunc()
  WHILE GetMessage(Msg,%NULL, 0, 0)
       ShowVar "Msg.hwnd",Msg.hwnd
       ShowVar "Msg.message",Msg.message
       ShowVar "Msg.wparam",Msg.wparam
       ShowVar "Msg.lparam",Msg.lparam
       ShowVar "Msg.time",Msg.time
       ShowVar "Msg.pt",Msg.pt.x
    TranslateMessage Msg
    DispatchMessage Msg
  WEND

END FUNCTION