Heres a really quick re-working of Chris's script (sorry, dont have postprep with me). It uses Controls Arrays as opposed to dynamically created $Variables using the EXECUTE() function. Personally, I'm a big fan of control arrays but I am sure you will hear from other Kixforms developers that use the Execute method.

{EDIT: Postprep code added by moderator Chris S.}



Break On
 
$Form = CreateObject("Kixtart.Form")
$Form.Size = 400400
$Form.Center
$Form.ForeColor = Blue
$Form.OnMouseDown = "OnFormMouseDown"
 
$Form.Show
 
WHILE $Form.Visible
    $=Execute($Form.DoEvents())
Loop
 
Exit 1
 
FUNCTION OnFormMouseDown
 
    Dim $Menu,$Item
 
    $Menu = "New","Open","Save","Save as...","Exit"
 
    If $Form.MouseButton = 2 ; Right-click
        $Item = fnPopup($Menu,$Form.Left + $Form.MouseX$Form.Top + $Form.MouseY)
        ?"Item=" $Item
 
    ENDIF
 
EndFunction
 
FUNCTION fnPopup($MenuStrings,$FormSLeft$FormSTop)
 
    Dim $MenuItems[UBOUND($MenuStrings)]
 
    $FormS = CreateObject("Kixtart.Form")
        $FormS.BorderStyle = 0
        $FormS.ClientWidth = 100
        $FormS.ClientHeight = 42
        $FormS.Top = $FormSTop + 30
        $FormS.Left = $FormSLeft + 5
 
    $Top = 1
 
    For $i = 0 To UBOUND($MenuStrings)
 
     $MenuItems[$i] = $FormS.ToolButton($MenuStrings[$i], 1$Top$FormS.ClientWidth-220)
     $MenuItems[$i].FlatStyle = 1
     $MenuItems[$i].Alignment = 0 ; Right
     $MenuItems[$i].HotBackColor = Navy
     $MenuItems[$i].HotForeColor = White
     $MenuItems[$i].OnClick = "$$FormS.Tag=$i $$FormS.Hide"
     $Top = $Top + 20
 
    Next
 
    $FormS.ClientHeight = $Top + 2
 
    $FormS.Line(0,0,0,$FormS.ClientHeight,"White")
    $FormS.Line(0,0,$FormS.ClientWidth,0,"White")
    $FormS.Line($FormS.ClientWidth-1,0,$FormS.ClientWidth-1,$FormS.ClientHeight,"DimGray")
    $FormS.Line(0,$FormS.ClientHeight-1,$FormS.ClientWidth,$FormS.ClientHeight-1,"DimGray")
 
    $FormS.Tag = -1
    $FormS.Show
     
    While $FormS.Visible
        $=Execute($FormS.DoEvents())
    Loop
 
    $fnPopup = $FormS.Tag
 
ENDFUNCTION
 
FUNCTION fnClickMe()
    $bFlip = not $bFlip
    If $bFlip
        $btnClose.Icon = 10 ; Green Check
    Else
        $btnClose.Icon = 9 ; Red X
    EndIf
ENDFUNCTION



[ 30. May 2003, 19:29: Message edited by: Chris S. ]