Error en Menu.prg de Clipper 5.3 con xHarbour

Ver el tema anterior Ver el tema siguiente Ir abajo

Error en Menu.prg de Clipper 5.3 con xHarbour

Mensaje  citro1965 el Miér Jun 08, 2011 10:59 am

Tenia un problema al ejecutar un menu generado en base al ejemplo que viene con Clipper 5.3 en: SOURCE\EJEMPLOS\MENU.PRG, así que use el mismo para probar su funcionamiento. Si compilo con xedit y xharbour, el mismo ejemplo que viene en esa carpeta, o sea MENU.PRG se ejecuta sin problemas. Pero si modifico el fuente para que quede como está más abajo:

function MENU_Test()
local oInfo

// Allow mouse actions to take place
SET( _SET_EVENTMASK, INKEY_ALL )

// Make the mouse cursor visible
msetcursor(.T.)

// Clear the screen
cls

// Create the menu
oInfo=MENU_Create()

// Wait for a menu event and do not exit until File/Exit is chosen

DO WHILE MenuModal(oInfo,1,24,1,79,"r/w") <> 999
ENDDO

return(NIL)


// This function will create the menu and return the newly created
// MenuObject as its return value. This menu consists of three "Main Menu choices" ..
// File, Edit, and Options. Additionally, the Edit TopBarMenu item has a secondary menu for
// one of its menu items.

function MENU_Create()
local oTopBar, oPopUp, oPopUp1, oItem


// TopBar() creates the menu at the very top of the screen
//oTopBar := TopBar( 0, 0, 78)
//oTopBar:ColorSpec :="b/w,gr+/rb,r/w,g/rb,n+/w,w+/b"


// Create a new popup menu named FILE and add it to the TopBar object
oPopUp := PopUp()
oPopUp :ColorSpec:= "b/w,gr+/rb,r/w,g/rb,n+/w,w+/b"
// oTopBar:AddItem( MenuItem ( "&File",oPopUp) )


// Add some menu items to the newly created File popup
oItem :=MenuItem( "&New" ,{|| MyCreateFile() }, K_CTRL_N,"Create a new file", 101)
oPopUp:AddItem( oItem)


oItem :=MenuItem( "&Open..." ,{|| MyOpenFile() }, K_CTRL_O,"Open a file")
oPopUp:AddItem( oItem)


oItem :=MenuItem( "Sa&ve" ,{|| MySaveFile() }, K_CTRL_V,"Save a file")

// Disable this menu item
oItem:Enabled := .f.
oPopUp:AddItem( oItem)


// Add a separator
oPopUp:AddItem( MenuItem( MENU_SEPARATOR ) )


oItem :=MenuItem( "&Print..." ,{|| MyPrintFile() }, K_CTRL_P,"Print a file")
// Disable this menu item
oItem:Enabled := .f.
oPopUp:AddItem( oItem)


// Another separator
oPopUp:AddItem( MenuItem( MENU_SEPARATOR ) )


oItem :=MenuItem( "E&xit" ,{|| .t. }, K_ALT_F4,"End of application", 999)
oPopUp:AddItem( oItem)


/* Create a second popup menu named EDIT and attach it to oTopBar
oPopUp := PopUp()
oPopUp :ColorSpec:= "b/w,gr+/rb,r/w,g/rb,n+/w,w+/b"
oTopBar:AddItem( MenuItem ( "&Edit",oPopUp) )

// Add some menu items to this EDIT popup menu
oItem :=MenuItem( "&Undo" ,{|| MyUndo() }, K_CTRL_Z,"Reverse changes made to this file")
oPopUp:AddItem( oItem)


oItem :=MenuItem( "Cu&t" ,{|| MyCut() }, K_CTRL_X,"Cut to clipboard")
oPopUp:AddItem( oItem)


oItem :=MenuItem( "&Copy" ,{|| MyCopy() }, K_CTRL_C,"Copy to clipboard")
oPopUp:AddItem( oItem)


oItem :=MenuItem( "&Paste" ,{|| MyPaste() }, K_CTRL_V,"Paste from clipboard")
oPopUp:AddItem( oItem)

// Another separator
oPopUp:AddItem( MenuItem( MENU_SEPARATOR ) )


// Create a new popup menu on the EDIT popup menu named Go. (This is also
// known as a "Cascading" menu.)
oPopUp1 := PopUp()
oPopUp1 :ColorSpec:= "b/w,gr+/rb,r/w,g/rb,n+/w,w+/b"
oItem :=MenuItem( "&Go",oPopUp1 )

oPopup:AddItem( oItem )

// Add some items to the Go cascading menu
oItem :=MenuItem( "&Go To..." ,{|| MyGoToLine() }, K_F5,"Go to a specific line number")
oPopUp1:AddItem( oItem)


oItem :=MenuItem( "G&o To Top" ,{|| MyGoTop() }, K_CTRL_HOME,"Go to top of file")
oPopUp1:AddItem( oItem)


oItem :=MenuItem( "Go To &Bottom" ,{|| MyGoBottom() }, K_CTRL_END,"Go to bottom of file")
oPopUp1:AddItem( oItem)

// Change the style of the GO popup menu. The second character in
// the string below represents the arrow that will be displayed next
// to the word GO. The default is a "", but I have changed it to
// a ">". I have kept the check mark ("û") the same as the default.
oItem :Style = "û>"

// Add yet another separator
oPopUp:AddItem( MenuItem( MENU_SEPARATOR ) )


// Add one final menu item to the EDIT popup menu
oItem :=MenuItem( "&Find..." ,{|| MySearch() }, K_ALT_F3,"Search for text")
oPopUp:AddItem( oItem)

//Create a 3rd PopUpMenu called OPTIONS and attatch it to oTopBar
oPopUp := PopUp()
oPopUp :ColorSpec:= "b/w,gr+/rb,r/w,g/rb,n+/w,w+/b"
oTopBar:AddItem( MenuItem ( "&Options",oPopUp) )


// Add the first item to the OPTIONS popup menu
oItem :=MenuItem( "AutoSave" ,{|| MyAutoSave() },,"Toggle auto save preference")


// Place a check mark next to this new item
oItem:Checked := .t.
oPopUp:AddItem( oItem)


// Add a second item to the OPTIONS popup menu.
oItem :=MenuItem( "Tab Stops..." ,{|| MyTabStops() },,"Set number of spaces for tab stops")
oPopUp:AddItem( oItem)
*/

// Return our TopBar object back to MENU_Test()
return ( oPopup ) // ( oTopBar)


// The following are dummy functions which do not do anything
// These functions are here to avoid receiving Unresolved External
// Errors

FUNCTION MyCreateFile()
RETURN NIL

FUNCTION MyOpenFile()
RETURN NIL

FUNCTION MySaveFile()
RETURN NIL

FUNCTION MyPrintFile()
RETURN NIL

FUNCTION MyUndo()
RETURN NIL

FUNCTION MyCut()
RETURN NIL

FUNCTION MyCopy()
RETURN NIL

FUNCTION MyPaste()
RETURN NIL

FUNCTION MyGoToLine()
RETURN NIL

FUNCTION MyGoTop()
RETURN NIL

FUNCTION MyGoBottom()
RETURN NIL

FUNCTION MySearch()
RETURN NIL

FUNCTION MyAutoSave()
RETURN NIL

FUNCTION MyTabStops()
RETURN NIL

Lo que hice fue suprimir el oTopBar, porque lo que necesito es un menú POPUP, y me bastó con usar el que despliega el ítem File. Este PRG, así como está, si lo compilo con Clipper 5.3 funciona bien, me despliega un menú POPUP que me muestra los ítems New, Open, Save, Print y Exit.
Pero si lo hago con xedit y xharbour, no me muestra errores al compilar, pero al ejecutar me aparece:

Error Base 1004
Message not found
POPUPMENU:MODAL

Bueno no se si es una falla de xharbour con xedit o que puede estar pasando, pero me está trabando una parte que la gente usa bastante en el sistema

citro1965

Mensajes : 11
Fecha de inscripción : 30/05/2011

Ver perfil de usuario

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.