  DIALOG CREATE,VDS Status,-1,0,256,153,RESIZABLE
  DIALOG ADD,BUTTON,BUTTON1,4,186,64,24,Set Status
  DIALOG ADD,EDIT,EDIT1,6,0,180,19,Hello
  DIALOG ADD,EDIT,EDIT2,40,0,180,19,50
  DIALOG ADD,BUTTON,BUTTON2,38,186,64,24,Set Progress
  DIALOG SHOW

rem           Name   |Text |Progresswidth|Bitmap                |Font 
%%AddStatus = Status1|Hello|100          |@windir()\explorer.exe|Arial
gosub AddStatus

rem Name:          The name of the statusbar. Only 'useful' when 
rem                you use child windows.
rem Text:          The text that should be displayed.
rem Progresswidth: The width of the progress bar in pixels. This
rem                can be leaved empty, but then some functions don't
rem                work proper.
rem Bitmap:        With this you can put a bitmap in the status bar.
rem                If you don't want them, let this one empty. You 
rem                can't use other EXE icons then the first one.
rem Font:          Here you can specify the font that the status bar
rem                will use. Can be left empty.


:Evloop
wait event
goto @event()

:Button1button
rem You can set the status bar just like a normal one...
dialog set,Status1,@dlgtext(edit1)
goto evloop

:Button2button
rem Setting the progress bar is easy. Use the status bar name with
rem 'Progress' after it.
dialog set,Status1Progress,@dlgtext(edit2)
goto evloop

:Resize
rem This is a little difficulter, but you probably won't need it. It's
rem only useful when you make a program that must be resizable
%%Status1Text = @dlgtext(status1)
%%RemoveStatus = status1
gosub RemoveStatus
%%AddStatus = status1|@dlgtext(edit1)|100|@windir()\explorer.exe|Arial
gosub AddStatus
dialog set,Status1Progress,@dlgtext(edit2)
goto evloop

:Close
exit


rem This must be included in all your code...
rem ---- ---- -- -------- -- --- ---- ----

:AddStatus
parse "%%AddStatus;%%Text;%%ProgressWidth;%%Bitmap;%%Fontname",%%AddStatus
  if @equal(@pos(%%AddStatus,%%AllStatus),0)
    DIALOG ADD,STYLE,%%AddStatus"STYLE3",%%Fontname,8,,BACKGROUND,BLACK
    DIALOG ADD,STYLE,%%AddStatus"STYLE2",,6,,WHITE,WHITE
    DIALOG ADD,STYLE,%%AddStatus"STYLE1",,6,,GRAY,GRAY
    end
	%%AllStatus = %%AllStatus|%%AddStatus
  DIALOG ADD,TEXT,%%AddStatus"TEXT1",@diff(@dlgpos(,H),19),1,@diff(@dlgpos(,W),2),17,,,%%AddStatus"STYLE1"
  DIALOG ADD,TEXT,%%AddStatus"TEXT2",@diff(@dlgpos(,H),2),1,@diff(@dlgpos(,W),2),1,,,%%AddStatus"STYLE2"
  DIALOG ADD,TEXT,%%AddStatus"TEXT3",@diff(@dlgpos(,H),18),2,@diff(@dlgpos(,W),2),16,,,%%AddStatus"STYLE3"
  DIALOG ADD,TEXT,%%AddStatus"TEXT4",@diff(@dlgpos(,H),19),@diff(@dlgpos(,W),2), 1,18,,,%%AddStatus"STYLE2"
  if @not(@null(%%Bitmap))
    DIALOG ADD,BITMAP,%%AddStatus"BITMAP",@diff(@dlgpos(,H),19),4,16,16,%%Bitmap
    %%Textpos = 20
	else
	%%Textpos = 0
	end
  DIALOG ADD,TEXT,%%AddStatus,@diff(@dlgpos(,H),17),@fadd(3,%%Textpos),,,%%Text,%%AddStatus"STYLE3"
  if @not(@null(%%ProgressWidth))
    DIALOG ADD,PROGRESS,%%AddStatus"PROGRESS",@diff(@dlgpos(,H),19),@diff(@dlgpos(,W),@fadd(%%ProgressWidth,2)),%%ProgressWidth,18,50
	end
  DIALOG SHOW
exit

:RemoveStatus
DIALOG REMOVE,%%RemoveStatus"TEXT1"
DIALOG REMOVE,%%RemoveStatus"TEXT2"
DIALOG REMOVE,%%RemoveStatus"TEXT3"
DIALOG REMOVE,%%RemoveStatus"TEXT4"
DIALOG REMOVE,%%RemoveStatus"BITMAP"
DIALOG REMOVE,%%RemoveStatus
if @not(@null(%%ProgressWidth))
  DIALOG REMOVE,%%RemoveStatus"PROGRESS"
  end
exit
