  %%gridsize = 8
  %%textnum = 0
  %%paintgrid = 1
  option decimalsep,.
  dialog CREATE,New Dialog,-1,0,240,160,DESIGN
  dialog ADD,STYLE,editor_black,,6,,BLACK,BACKGROUND
  dialog ADD,BUTTON,TEXT1,8,10,,,Text1
  dialog SHOW
  if %%PaintGrid
    %a = -1
    %c = -1
    repeat 
      %a = @succ(%A)
      %b = -1
      repeat 
        %b = @succ(%B)
        %c = @succ(%C)
        dialog add,text,editor_grid%C,@prod(%A,8),@prod(%B,8),1,1,,editor_black
      until @equal(%B,@pred(@div(@dlgpos(,W),8)))
    until @equal(%A,@pred(@div(@dlgpos(,H),8)))
  end 
:evloop
  wait event
  goto @event()
:TEXT1CLICK
  dialog attach,text1
  goto evloop
:TEXT1CHANGE
  %e = T
  gosub gridadjust
  dialog setpos,TEXT1,%D
  %e = L
  gosub gridadjust
  dialog setpos,TEXT1,,%D
  %e = W
  gosub gridadjust
  dialog setpos,TEXT1,,,%D
  %e = H
  gosub gridadjust
  dialog setpos,TEXT1,,,,%D
  dialog detach,TEXT1
  dialog attach,TEXT1
  goto evloop
:GRIDADJUST
  %a = @dlgpos(TEXT1,%E)
  %b = %A
  if @not(@numeric(@fdiv(%B,%%GridSize).0))
    repeat 
      %b = @pred(%B)
    until @numeric(@fdiv(%B,%%GridSize).0)
  end 
  %c = %A
  if @not(@numeric(@fdiv(%C,%%GridSize).0))
    repeat 
      %c = @succ(%C)
    until @numeric(@fdiv(%C,%%GridSize).0)
  end 
  if @greater(@diff(%A,%B),@diff(%C,%A))
    %d = %C
  else 
    %d = %B
  end 
  exit 
:CLICK
  goto evloop
:CLOSE
  exit 
