Error con un programa de fivewin en una maquina virtual
Re: Error con un programa de fivewin en una maquina virtual
¿No hay manera de tratar de interpretar el archivo que se genera? por lo menos para tratar de encontrar donde está el error, no creo tanto que sea la versión de windows, porque como comenté anteriormente, el programa corre perfectamente en máquinas con windows 7 home y profesional, pero en la máquina virtual no funcionó. Ademas, tengo otro programa de fivewin que funciona sin problemas en la misma máquina virtual. Aunque, curiosamente, el problema se muestra al llamar un diálogo, eso no quiere decir que el problema tenga que ser ahí, porque cuando hago el llamado al shellexecute() no creo diálogos, lo que hago es llamar al otro programa de fivewin desde el programa para no tener que hacer doble click o alguna otra operación fuera del programa.
Es muy posible que el problema tenga que ver con la clase que utilizo heredada de tTxtEdit() o en algún otro proceso intermedio. No se, puede ser en cualquier parte, pero ¿por que en la máquina virtual y no fuera? Realmente lo importante es poder encontrar el lugar y corregirlo.
Es muy posible que el problema tenga que ver con la clase que utilizo heredada de tTxtEdit() o en algún otro proceso intermedio. No se, puede ser en cualquier parte, pero ¿por que en la máquina virtual y no fuera? Realmente lo importante es poder encontrar el lugar y corregirlo.
Saludos
Quique
Quique
- Antonio Linares
- Site Admin
- Posts: 42521
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 31 times
- Been thanked: 76 times
- Contact:
Re: Error con un programa de fivewin en una maquina virtual
Quique,
En el fichero que se genera lo que indica es que el error viene de aqui:
0x6EF40000 0x00010000 C:\Windows\System32\VBoxHook.dll
como ves, poco se puede hacer ahi...
Por favor copia aqui el código de la clase que has creado para que revise si está bien.
Si haces sencillamente:
DEFINE DIALOG oDlg
ACTIVATE DIALOG oDlg
eso tambien te falla ?
En el fichero que se genera lo que indica es que el error viene de aqui:
0x6EF40000 0x00010000 C:\Windows\System32\VBoxHook.dll
como ves, poco se puede hacer ahi...
Por favor copia aqui el código de la clase que has creado para que revise si está bien.
Si haces sencillamente:
DEFINE DIALOG oDlg
ACTIVATE DIALOG oDlg
eso tambien te falla ?
- Antonio Linares
- Site Admin
- Posts: 42521
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 31 times
- Been thanked: 76 times
- Contact:
Re: Error con un programa de fivewin en una maquina virtual
Usas algo de OLE ? Algo de gráficos ?
Son las DLLs usadas justo antes de VBoxHook.dll
Son las DLLs usadas justo antes de VBoxHook.dll
Re: Error con un programa de fivewin en una maquina virtual
Nop, ni ole ni gráficos, y ya llegué a la conclusión de que el problema es en mi clase, porque si cierro la ventana no falla, aunque no he descartado que el error venga desde tTxtEdit. No se porque pude llegar al activate la vez pasada, quise volver a comprobarlo antes de monitorear la clase dialog, pero esta vez no me dejó ni siquiera al principio de la función.
No se si esto sea como gráficos, pero se utiliza mucho textOut().
No se si esto sea como gráficos, pero se utiliza mucho textOut().
Saludos
Quique
Quique
- Antonio Linares
- Site Admin
- Posts: 42521
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 31 times
- Been thanked: 76 times
- Contact:
Re: Error con un programa de fivewin en una maquina virtual
Quique,
Has incluido esta línea en la declaración de tu clase ?
CLASSDATA lRegistered AS LOGICAL
Has incluido esta línea en la declaración de tu clase ?
CLASSDATA lRegistered AS LOGICAL
Re: Error con un programa de fivewin en una maquina virtual
Quique para ejecutar un programa externo
has intentado asi?
saludos.
has intentado asi?
Code: Select all | Expand
[code]SysWait(.7)
WinExec( "ScTimer.exe " )[/code]
saludos.
Cesar Cortes Cruz
SysCtrl Software
Mexico
' Sin +- FWH es mejor "
SysCtrl Software
Mexico
' Sin +- FWH es mejor "
Re: Error con un programa de fivewin en una maquina virtual
No para este programa, pero alguna vez lo usé y no recuerdo cual fue el problema por el cual lo cambié por shellExecute(), pero bueno, esa era otra situación, me parece que fue por la velocidad, ya no me acuerdo, a fin de cuentas, los dos tardaban en salir del programa con un quit despues del shellExecute() o winExec().
Pero el problema no es solo con ese llamado, tambien al mostrar algún mensaje (msginfo() o diálogos).
Una pregunta ¿porque el SysWait(.7) antes de winExec().
Pero el problema no es solo con ese llamado, tambien al mostrar algún mensaje (msginfo() o diálogos).
Una pregunta ¿porque el SysWait(.7) antes de winExec().
Saludos
Quique
Quique
- Antonio Linares
- Site Admin
- Posts: 42521
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 31 times
- Been thanked: 76 times
- Contact:
Re: Error con un programa de fivewin en una maquina virtual
Quique,
Puedes publicar aqui ó enviarme por email el código fuente de la clase que has derivado de TTxtEdit ?
Puedes publicar aqui ó enviarme por email el código fuente de la clase que has derivado de TTxtEdit ?
Re: Error con un programa de fivewin en una maquina virtual
El error no creo que esté en esa clase ¿que es lo que necesitas ver en ella ponerlo? más bien creo que es en la creación del menú, porque quitando esa parte ya no tengo problemas, ya pude ver el diálogo sin problemas, y esa parte no la tengo dentro de la clase derivada de tTxtEdit
Esta es casi toda la la función donde creo el menú, no me dejo subirla toda por el límite de caracteres, pero quito solamente líneas en la creación del ::aKeyCon, y no lo muestro como código porque no se muestra el mensaje
function menuPrincipal
local /*oMenu, */xMenu, nLen, hMenu, cCont
local self := qSelf()
::aKeyCon := { ; // Lista de funciones programables "TIPO" => " " , "x"- Teclas en tiempo de edición, "0" y "5"- inicia menu, "1" , "4"- menuItem, "2" separador dentro del menú "3" fin de menú
; // Teclas en tiempo de edición
{ "DESCRIP" => hIdioma:curBckSpc , "TIPO" => " ", "FLAGS1" => ACC_NORMAL , "TECLA1" => VK_BACK , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:delete( .t. ) } }, ;
{ "DESCRIP" => hIdioma:curReturn , "TIPO" => " ", "FLAGS1" => ACC_NORMAL , "TECLA1" => VK_RETURN , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:edit_return() } }, ;
{ "DESCRIP" => hIdioma:curTab , "TIPO" => " ", "FLAGS1" => ACC_NORMAL , "TECLA1" => VK_TAB , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:edit_tabulador() } }, ;
{ "DESCRIP" => hIdioma:curEsc , "TIPO" => " ", "FLAGS1" => ACC_NORMAL , "TECLA1" => VK_ESCAPE , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || nil } }, ;
{ "DESCRIP" => hIdioma:curInsertar , "TIPO" => "x", "FLAGS1" => ACC_NORMAL , "TECLA1" => VK_INSERT , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:toggleInsert() } }, ;
{ "DESCRIP" => hIdioma:curSelIni , "TIPO" => " ", "FLAGS1" => ACC_SHIFT , "TECLA1" => VK_HOME , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || if( ::oFuente:nPressDown == 1, ::oFuente:goBeginChar( .t. ), if( ::oFuente:nPressDown == 2, ::oFuente:goBeginLine( .t. ), if( ::oFuente:nPressDown == 3, ::oFuente:goBeginWindow( .t. ), if( ::oFuente:nPressDown == 4, ::oFuente:goTop( .t. ), ) ) ) ) } }, ;
{ "DESCRIP" => hIdioma:curSelFin , "TIPO" => " ", "FLAGS1" => ACC_SHIFT , "TECLA1" => VK_END , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || if( ::oFuente:nPressDown == 1, ::oFuente:goEndLine( .t. ), if( ::oFuente:nPressDown == 2, ::oFuente:goEndWindow( .t. ), if( ::oFuente:nPressDown == 3, ::oFuente:goBottom( .t. ), ) ) ) } }, ;
{ "DESCRIP" => hIdioma:curInicio , "TIPO" => " ", "FLAGS1" => ACC_NORMAL , "TECLA1" => VK_HOME , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || if( ::oFuente:nPressDown == 1, ::oFuente:goBeginChar( .f. ), if( ::oFuente:nPressDown == 2, ::oFuente:goBeginLine( .f. ), if( ::oFuente:nPressDown == 3, ::oFuente:goBeginWindow( .f. ), if( ::oFuente:nPressDown == 4, ::oFuente:goTop( .f. ), ) ) ) ) } }, ;
{ "DESCRIP" => hIdioma:curFin , "TIPO" => "x", "FLAGS1" => ACC_NORMAL , "TECLA1" => VK_END , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || if( ::oFuente:nPressDown == 1, ::oFuente:goEndLine( .f. ), if( ::oFuente:nPressDown == 2, ::oFuente:goEndWindow( .f. ), if( ::oFuente:nPressDown == 3, ::oFuente:goBottom( .f. ), ) ) ) } }, ;
; // Menú Archivo
{ "DESCRIP" => hIdioma:mnuArchivo , "TIPO" => "5", "VARIABLE" => "_OITMARCH" }, ;
{ "DESCRIP" => hIdioma:mnuNuevo , "TIPO" => "1", "FLAGS1" => nil , "TECLA1" => nil , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::fuenteNuevo() } , "WHEN" => nil }, ;
{ "DESCRIP" => hIdioma:mnuAbrir , "TIPO" => "1", "FLAGS1" => ACC_NORMAL , "TECLA1" => VK_F3 , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::abrirFuente() } , "WHEN" => nil }, ;
{ "DESCRIP" => hIdioma:mnuGuardar , "TIPO" => "1", "FLAGS1" => ACC_NORMAL , "TECLA1" => VK_F2 , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:saveToFile() }, "WHEN" => { || ::oFuente <> nil .AND. ::oFuente:lChanged } }, ;
{ "DESCRIP" => hIdioma:mnuGuardarComo, "TIPO" => "1", "FLAGS1" => nil , "TECLA1" => nil , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:saveToFile( , .t. ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:mnuGuardarTodo, "TIPO" => "1", "FLAGS1" => ACC_CONTROL, "TECLA1" => VK_F2 , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::guardarTodo() } , "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:mnuCerrar , "TIPO" => "1", "FLAGS1" => ACC_SHIFT , "TECLA1" => VK_F2 , "FLAGS2" => ACC_CONTROL, "TECLA2" => VK_F4 , "ACCION" => { || ::oFuente:cerrar() } , "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:mnuCerrarTodo , "TIPO" => "1", "FLAGS1" => ACC_SHIFT , "TECLA1" => VK_F3 , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oWnd:closeAll() } , "WHEN" => { || ::oFuente <> nil } }, ;
{ "TIPO" => "2" }, ;
{ "DESCRIP" => hIdioma:mnuProyectos , "TIPO" => "1", "FLAGS1" => nil , "TECLA1" => nil , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::proyectos() } , "WHEN" => nil }, ;
{ "TIPO" => "2" }, ;
{ "DESCRIP" => hIdioma:mnuOS_shell , "TIPO" => "1", "FLAGS1" => nil , "TECLA1" => nil , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || shellExecute( , "open", getEnv( "COMSPEC" ),,, SW_SHOWNORMAL ) }, "WHEN" => nil }, ;
{ "TIPO" => "2" }, ;
{ "DESCRIP" => hIdioma:mnuImprimir , "TIPO" => "1", "FLAGS1" => ACC_CONTROL, "TECLA1" => asc( "P" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oWnd:print() } , "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:mnuConfImp , "TIPO" => "1", "FLAGS1" => ACC_ALTCTRL, "TECLA1" => asc( "P" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || printerSetup() } , "WHEN" => { || ::oFuente <> nil } }, ;
{ "TIPO" => "2" }, ;
{ "DESCRIP" => hIdioma:mnuPreprocesar, "TIPO" => "0" }, ;
{ "DESCRIP" => hIdioma:mnuDirInclude , "TIPO" => "1", "FLAGS1" => nil , "TECLA1" => nil , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::config( 2 ) } , "WHEN" => nil }, ;
{ "DESCRIP" => hIdioma:mnuPPCompacto , "TIPO" => "1", "FLAGS1" => nil , "TECLA1" => nil , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:preproceso( 0 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:mnuPPNormal , "TIPO" => "1", "FLAGS1" => nil , "TECLA1" => nil , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:preproceso( 1 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:mnuPPDetallado, "TIPO" => "1", "FLAGS1" => nil , "TECLA1" => nil , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:preproceso( 2 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "TIPO" => "3" }, ;
{ "TIPO" => "2" }, ;
{ "DESCRIP" => hIdioma:mnuSalir , "TIPO" => "1", "FLAGS1" => ACC_ALT , "TECLA1" => VK_F4 , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oWnd:end() } , "WHEN" => nil }, ;
{ "TIPO" => "2" }, ;
{ "TIPO" => "3" }, ;
; // Menú Editar
{ "DESCRIP" => hIdioma:mnuEditar , "TIPO" => "0" }, ;
{ "DESCRIP" => hIdioma:mnuUndo , "TIPO" => "1", "FLAGS1" => ACC_ALT , "TECLA1" => VK_BACK , "FLAGS2" => ACC_CONTROL, "TECLA2" => asc( "Z" ), "ACCION" => { || ::oFuente:undo() } , "WHEN" => { || ::oFuente <> nil .AND. len( ::oFuente:aDelLines ) >= ::oFuente:nUndo } }, ;
{ "DESCRIP" => hIdioma:mnuRedo , "TIPO" => "1", "FLAGS1" => ACC_ALT , "TECLA1" => VK_RETURN , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:redo() } , "WHEN" => { || ::oFuente <> nil .AND. ::oFuente:nUndo > 1 } }, ;
{ "TIPO" => "2" }, ;
{ "DESCRIP" => hIdioma:mnuCortar , "TIPO" => "1", "FLAGS1" => ACC_CONTROL, "TECLA1" => asc( "X" ), "FLAGS2" => ACC_SHIFT , "TECLA2" => VK_DELETE , "ACCION" => { || ::oFuente:shift_delete()}, "WHEN" => { || ::oFuente <> nil .AND. ::oFuente:hSelect <> nil .and. !::oFuente:lReadOnly } }, ;
{ "DESCRIP" => hIdioma:mnuCopiar , "TIPO" => "1", "FLAGS1" => ACC_CONTROL, "TECLA1" => asc( "C" ), "FLAGS2" => ACC_CONTROL, "TECLA2" => VK_INSERT , "ACCION" => { || ::oFuente:ctrl_insert()}, "WHEN" => { || ::oFuente <> nil .AND. ::oFuente:hSelect <> nil } }, ;
{ "DESCRIP" => hIdioma:mnuPegar , "TIPO" => "1", "FLAGS1" => ACC_CONTROL, "TECLA1" => asc( "V" ), "FLAGS2" => ACC_SHIFT , "TECLA2" => VK_INSERT , "ACCION" => { || ::oFuente:paste() } , "WHEN" => { || ::oFuente <> nil .AND. !::oFuente:lReadOnly } }, ;
{ "DESCRIP" => hIdioma:mnuSuprimir , "TIPO" => "1", "FLAGS1" => ACC_NORMAL , "TECLA1" => VK_DELETE , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:delete( .f. )}, "WHEN" => { || ::oFuente <> nil .AND. !::oFuente:lReadOnly } }, ;
{ "TIPO" => "2" }, ;
{ "DESCRIP" => hIdioma:mnuSelLine , "TIPO" => "1", "FLAGS1" => ACC_NORMAL , "TECLA1" => VK_F7 , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:edit_insert( SELECCION_LINEA ) } , "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:mnuSelbloque , "TIPO" => "1", "FLAGS1" => ACC_SHIFT , "TECLA1" => VK_F7 , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:edit_insert( SELECCION_BLOQUE ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:mnuMovCursor , "TIPO" => "0" }, ;
{ "DESCRIP" => hIdioma:curSelLinPrev , "TIPO" => "1", "FLAGS1" => ACC_SHIFT , "TECLA1" => VK_UP , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:goPrevLine( .t. ) }, "WHEN" => nil }, ;
{ "DESCRIP" => hIdioma:curSelLinSig , "TIPO" => "1", "FLAGS1" => ACC_SHIFT , "TECLA1" => VK_DOWN , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || if( ::oFuente:lActDer .OR. ::oFuente:nLine() < len( ::oFuente:aLines ) + 1, ::oFuente:goNextLine( .t. ), ) }, "WHEN" => nil }, ;
{ "DESCRIP" => hIdioma:curSelIzq , "TIPO" => "1", "FLAGS1" => ACC_SHIFT , "TECLA1" => VK_LEFT , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:goPrevChar( .t. ) }, "WHEN" => nil }, ;
{ "DESCRIP" => hIdioma:curSelDer , "TIPO" => "1", "FLAGS1" => ACC_SHIFT , "TECLA1" => VK_RIGHT , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:goNextChar( .t. ) }, "WHEN" => nil }, ;
{ "DESCRIP" => hIdioma:curSelWordPrev, "TIPO" => "1", "FLAGS1" => ACC_CTRLSHF, "TECLA1" => VK_LEFT , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:goPrevWord( .t. ) }, "WHEN" => nil }, ;
{ "DESCRIP" => hIdioma:curSelWordSig , "TIPO" => "1", "FLAGS1" => ACC_CTRLSHF, "TECLA1" => VK_RIGHT , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:goNextWord( .t. ) }, "WHEN" => nil }, ;
{ "DESCRIP" => hIdioma:curSelPagSig , "TIPO" => "1", "FLAGS1" => ACC_SHIFT , "TECLA1" => VK_NEXT , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:pageDown( .t. ) }, "WHEN" => nil }, ;
{ "DESCRIP" => hIdioma:curSelPagPrev , "TIPO" => "1", "FLAGS1" => ACC_SHIFT , "TECLA1" => VK_PRIOR , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:pageUp( .t. )}, "WHEN" => nil }, ;
{ "DESCRIP" => hIdioma:curSelIniArch , "TIPO" => "1", "FLAGS1" => ACC_CTRLSHF, "TECLA1" => VK_HOME , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:goTop( .t. ) }, "WHEN" => nil }, ;
{ "DESCRIP" => hIdioma:curSelFinArch , "TIPO" => "1", "FLAGS1" => ACC_CTRLSHF, "TECLA1" => VK_END , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:goBottom( .t. ) }, "WHEN" => nil }, ;
{ "DESCRIP" => hIdioma:curSelScrlUp , "TIPO" => "1", "FLAGS1" => ACC_CTRLSHF, "TECLA1" => VK_UP , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:scrollUp( .t. ) } , "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:curSelScrlDown, "TIPO" => "1", "FLAGS1" => ACC_CTRLSHF, "TECLA1" => VK_DOWN , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:scrollDown( .t. ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "TIPO" => "3" }, ;
{ "TIPO" => "2" }, ;
{ "DESCRIP" => hIdioma:mnuInsVentana , "TIPO" => "0" } ;
}
FOR each xMenu in ::hVentanas
aAdd( ::aKeyCon, { "DESCRIP" => xMenu:menu, "TIPO" => "1", "FLAGS1" => nil , "TECLA1" => nil , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => codeBlockCreaVentana( self, xMenu:__enumValue() ), "WHEN" => { || ::oFuente <> nil } } )
NEXT
xMenu := { ;
{ "TIPO" => "3" }, ;
{ "TIPO" => "2" }, ;
{ "DESCRIP" => hIdioma:mnuVentCodAct , "TIPO" => "1", "FLAGS1" => ACC_ALTCTRL, "TECLA1" => asc( "V" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:verVentana() }, "WHEN" => { || ::oFuente <> nil .AND. !empty( ::oFuente:aVentanas ) } }, ;
{ "TIPO" => "3" }, ;
; // Buscar
{ "DESCRIP" => hIdioma:mnuBuscar , "TIPO" => "0" }, ;
{ "DESCRIP" => hIdioma:mnuBuscar , "TIPO" => "1", "FLAGS1" => ACC_NORMAL , "TECLA1" => VK_F5 , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:dlgFind() } , "WHEN" => { || ::oFuente <> nil } }, ;
{ "TIPO" => "2" }, ;
{ "DESCRIP" => hIdioma:mnuIrALinea , "TIPO" => "1", "FLAGS1" => ACC_ALT , "TECLA1" => VK_F5 , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:dlgGoLine( ,, .t. ) } , "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:curModifiUp , "TIPO" => "1", "FLAGS1" => ACC_ALTSHFT, "TECLA1" => VK_UP , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:modificadaUp() }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:curModifiDown , "TIPO" => "1", "FLAGS1" => ACC_ALTSHFT, "TECLA1" => VK_DOWN , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:modificadaDown() }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:mnuMovCursor , "TIPO" => "0" }, ;
{ "DESCRIP" => hIdioma:curLinPrev , "TIPO" => "1", "FLAGS1" => ACC_NORMAL , "TECLA1" => VK_UP , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:goPrevLine( .f. ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:curLinSig , "TIPO" => "1", "FLAGS1" => ACC_NORMAL , "TECLA1" => VK_DOWN , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || if( ::oFuente:lActDer .OR. ::oFuente:nLine() < len( ::oFuente:aLines ) + 1, ::oFuente:goNextLine( .f. ), ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:curChrPrev , "TIPO" => "1", "FLAGS1" => ACC_NORMAL , "TECLA1" => VK_LEFT , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:goPrevChar( .f. ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:curChrSig , "TIPO" => "1", "FLAGS1" => ACC_NORMAL , "TECLA1" => VK_RIGHT , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:goNextChar( .f. ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:curWordPre , "TIPO" => "1", "FLAGS1" => ACC_CONTROL, "TECLA1" => VK_LEFT , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:goPrevWord( .f. ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:curWordSig , "TIPO" => "1", "FLAGS1" => ACC_CONTROL, "TECLA1" => VK_RIGHT , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:goNextWord( .f. ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:curPagSig , "TIPO" => "1", "FLAGS1" => ACC_NORMAL , "TECLA1" => VK_NEXT , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:pageDown( .f. ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:curPagPrev , "TIPO" => "1", "FLAGS1" => ACC_NORMAL , "TECLA1" => VK_PRIOR , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:pageUp( .f. )}, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:curIniArch , "TIPO" => "1", "FLAGS1" => ACC_CONTROL, "TECLA1" => VK_HOME , "FLAGS2" => ACC_CONTROL, "TECLA2" => VK_PRIOR , "ACCION" => { || ::oFuente:goTop( .f. ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:curFinArch , "TIPO" => "1", "FLAGS1" => ACC_CONTROL, "TECLA1" => VK_END , "FLAGS2" => ACC_CONTROL, "TECLA2" => VK_NEXT , "ACCION" => { || ::oFuente:goBottom( .f. ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:curScrollUp , "TIPO" => "1", "FLAGS1" => ACC_CONTROL, "TECLA1" => VK_UP , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:scrollUp( .f. ) } , "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:curScrollDown , "TIPO" => "1", "FLAGS1" => ACC_CONTROL, "TECLA1" => VK_DOWN , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:scrollDown( .f. ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:curFindUp , "TIPO" => "1", "FLAGS1" => ACC_ALTCTRL, "TECLA1" => VK_UP , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:findCursor( .t. ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:curFindDown , "TIPO" => "1", "FLAGS1" => ACC_ALTCTRL, "TECLA1" => VK_DOWN , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:findCursor( .f. ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "TIPO" => "3" }, ;
{ "TIPO" => "2" }, ;
{ "DESCRIP" => hIdioma:mnuBanderaPone, "TIPO" => "1", "FLAGS1" => ACC_NORMAL , "TECLA1" => VK_F4 , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:bandera( .t. ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:mnuBanderaIr , "TIPO" => "1", "FLAGS1" => ACC_SHIFT , "TECLA1" => VK_F4 , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:bandera( .f. ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:mnuMarcadorPon, "TIPO" => "0" }, ;
{ "DESCRIP" => "1" , "TIPO" => "1", "FLAGS1" => ACC_ALT , "TECLA1" => asc( "1" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:marcador( 1, 1 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => "2" , "TIPO" => "1", "FLAGS1" => ACC_ALT , "TECLA1" => asc( "2" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:marcador( 2, 1 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => "3" , "TIPO" => "1", "FLAGS1" => ACC_ALT , "TECLA1" => asc( "3" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:marcador( 3, 1 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => "4" , "TIPO" => "1", "FLAGS1" => ACC_ALT , "TECLA1" => asc( "4" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:marcador( 4, 1 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => "5" , "TIPO" => "1", "FLAGS1" => ACC_ALT , "TECLA1" => asc( "5" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:marcador( 5, 1 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => "6" , "TIPO" => "1", "FLAGS1" => ACC_ALT , "TECLA1" => asc( "6" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:marcador( 6, 1 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => "9" , "TIPO" => "1", "FLAGS1" => ACC_ALT , "TECLA1" => asc( "9" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:marcador( 9, 1 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => "0" , "TIPO" => "1", "FLAGS1" => ACC_ALT , "TECLA1" => asc( "0" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:marcador( 10, 1 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "TIPO" => "3" }, ;
{ "DESCRIP" => hIdioma:mnuMarcadorIr , "TIPO" => "0" }, ;
{ "DESCRIP" => "1" , "TIPO" => "1", "FLAGS1" => ACC_CONTROL, "TECLA1" => asc( "1" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:marcador( 1, 2 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => "2" , "TIPO" => "1", "FLAGS1" => ACC_CONTROL, "TECLA1" => asc( "2" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:marcador( 2, 2 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => "3" , "TIPO" => "1", "FLAGS1" => ACC_CONTROL, "TECLA1" => asc( "3" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:marcador( 3, 2 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => "4" , "TIPO" => "1", "FLAGS1" => ACC_CONTROL, "TECLA1" => asc( "4" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:marcador( 4, 2 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => "5" , "TIPO" => "1", "FLAGS1" => ACC_CONTROL, "TECLA1" => asc( "5" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:marcador( 5, 2 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => "6" , "TIPO" => "1", "FLAGS1" => ACC_CONTROL, "TECLA1" => asc( "6" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:marcador( 6, 2 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => "9" , "TIPO" => "1", "FLAGS1" => ACC_CONTROL, "TECLA1" => asc( "9" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:marcador( 9, 2 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => "0" , "TIPO" => "1", "FLAGS1" => ACC_CONTROL, "TECLA1" => asc( "0" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:marcador( 10, 2 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "TIPO" => "3" }, ;
{ "DESCRIP" => hIdioma:mnuMarcadorBor, "TIPO" => "0" }, ;
{ "DESCRIP" => "1" , "TIPO" => "1", "FLAGS1" => ACC_ALTCTRL, "TECLA1" => asc( "1" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:marcador( 1, 3 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => "2" , "TIPO" => "1", "FLAGS1" => ACC_ALTCTRL, "TECLA1" => asc( "2" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:marcador( 2, 3 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => "3" , "TIPO" => "1", "FLAGS1" => ACC_ALTCTRL, "TECLA1" => asc( "3" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:marcador( 3, 3 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => "4" , "TIPO" => "1", "FLAGS1" => ACC_ALTCTRL, "TECLA1" => asc( "4" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:marcador( 4, 3 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => "5" , "TIPO" => "1", "FLAGS1" => ACC_ALTCTRL, "TECLA1" => asc( "5" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:marcador( 5, 3 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => "6" , "TIPO" => "1", "FLAGS1" => ACC_ALTCTRL, "TECLA1" => asc( "6" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:marcador( 6, 3 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => "9" , "TIPO" => "1", "FLAGS1" => ACC_ALTCTRL, "TECLA1" => asc( "9" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:marcador( 9, 3 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => "0" , "TIPO" => "1", "FLAGS1" => ACC_ALTCTRL, "TECLA1" => asc( "0" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:marcador( 10, 3 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "TIPO" => "3" }, ;
{ "TIPO" => "2" }, ;
{ "DESCRIP" => hIdioma:mnuListaFunc , "TIPO" => "1", "FLAGS1" => ACC_ALTSHFT, "TECLA1" => asc( "F" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:listaFunciones() }, "WHEN" => { || ::oFuente <> nil .AND. !empty( ::oFuente:aFunciones ) } }, ;
{ "DESCRIP" => hIdioma:mnuListaVent , "TIPO" => "1", "FLAGS1" => ACC_ALTSHFT, "TECLA1" => asc( "V" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:listaVentanas() } , "WHEN" => { || ::oFuente <> nil .AND. !empty( ::oFuente:aVentanas ) } }, ;
{ "TIPO" => "3" }, ;
; // Texto
{ "DESCRIP" => hIdioma:mnuTexto , "TIPO" => "0" }, ;
{ "DESCRIP" => hIdioma:mnuComentario , "TIPO" => "1", "FLAGS1" => ACC_CTRLSHF, "TECLA1" => asc( "C" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:comentario() }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:mnuMayusMinus , "TIPO" => "1", "FLAGS1" => ACC_ALT , "TECLA1" => asc( "C" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:changeCase() }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:mnuDlgMayusMi , "TIPO" => "1", "FLAGS1" => ACC_ALTSHFT, "TECLA1" => asc( "C" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:selectCase() }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "TIPO" => "3" }, ;
; // Depurador (debugger)
{ "DESCRIP" => hIdioma:mnuDebugger , "TIPO" => "0" }, ;
{ "DESCRIP" => hIdioma:mnuRun , "TIPO" => "1", "FLAGS1" => ACC_NORMAL , "TECLA1" => VK_F6 , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::ejecutar() } , "WHEN" => { || ::nDbgStatus == 0 } }, ;
{ "TIPO" => "2" }, ;
{ "DESCRIP" => hIdioma:mnuCompilar , "TIPO" => "1", "FLAGS1" => ACC_NORMAL , "TECLA1" => VK_F9 , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::compilar( .f. ) } , "WHEN" => { || ::nDbgStatus == 0 } }, ;
{ "DESCRIP" => hIdioma:mnuReconstruir, "TIPO" => "1", "FLAGS1" => ACC_SHIFT , "TECLA1" => VK_F9 , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::compilar( .t. ) } , "WHEN" => { || ::nDbgStatus == 0 } }, ;
{ "DESCRIP" => hIdioma:mnuDebugger , "TIPO" => "4", "FLAGS1" => nil , "TECLA1" => nil , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { | oItm | oItm:setCheck( !oItm:lChecked ) }, "WHEN" => { || ::nDbgStatus == 0 }, "VARIABLE" => "_OITMDBG" }, ;
{ "TIPO" => "2" }, ;
{ "DESCRIP" => hIdioma:mnuContinuar , "TIPO" => "1", "FLAGS1" => ACC_SHIFT , "TECLA1" => VK_F8 , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oDdeCli:execute( "Seguir" ), ::nDbgStatus := 1 }, "WHEN" => { || ::nDbgStatus == 2 } }, ;
{ "DESCRIP" => hIdioma:mnuStep , "TIPO" => "1", "FLAGS1" => ACC_NORMAL , "TECLA1" => VK_F8 , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oDdeCli:execute( "Paso" ), ::nDbgStatus := 1 }, "WHEN" => { || ::nDbgStatus == 2 } }, ;
{ "DESCRIP" => hIdioma:mnuRutina , "TIPO" => "1", "FLAGS1" => ACC_CONTROL, "TECLA1" => VK_F9 , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oDdeCli:execute( "Trace" ) }, "WHEN" => { || ::nDbgStatus == 2 } }, ;
{ "DESCRIP" => hIdioma:mnuSigrutina , "TIPO" => "1", "FLAGS1" => ACC_ALT , "TECLA1" => VK_F9 , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oDdeCli:execute( "Siguiente" ) }, "WHEN" => { || ::nDbgStatus == 2 } }, ;
{ "DESCRIP" => hIdioma:mnuHastaCursor, "TIPO" => "1", "FLAGS1" => ACC_CONTROL, "TECLA1" => VK_F8 , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oDdeCli:execute( "Línea" + str( ::oFuente:nLine, 6 ) + ::oFuente:cNomSinPath ) }, "WHEN" => { || ::nDbgStatus == 2 } }, ;
{ "TIPO" => "2" }, ;
{ "DESCRIP" => hIdioma:mnuBreakPoint , "TIPO" => "1", "FLAGS1" => ACC_ALT , "TECLA1" => VK_F10 , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:breakPoint() }, "WHEN" => { || ::nDbgStatus == 2 } }, ;
{ "DESCRIP" => "alt&D()" , "TIPO" => "1", "FLAGS1" => ACC_ALT , "TECLA1" => asc( "D" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oDdeCli:execute( "altD()" ) }, "WHEN" => { || ::nDbgStatus > 0 } }, ;
{ "TIPO" => "2" }, ;
{ "DESCRIP" => hIdioma:mnuVelocidad , "TIPO" => "1", "FLAGS1" => nil , "TECLA1" => nil , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oDdeCli:execute( "Velocidad" ) }, "WHEN" => { || ::nDbgStatus > 0 } }, ;
{ "DESCRIP" => hIdioma:mnuAnimado , "TIPO" => "1", "FLAGS1" => nil , "TECLA1" => nil , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oDdeCli:execute( "Animado" ) }, "WHEN" => { || ::nDbgStatus == 2 } }, ;
{ "TIPO" => "2" }, ;
{ "DESCRIP" => hIdioma:mnuVariables , "TIPO" => "1", "FLAGS1" => ACC_ALT , "TECLA1" => VK_F6 , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oDdeCli:execute( "Variables" ) }, "WHEN" => { || ::nDbgStatus == 2 } }, ;
{ "DESCRIP" => hIdioma:mnuWorkAreas , "TIPO" => "1", "FLAGS1" => ACC_SHIFT , "TECLA1" => VK_F6 , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oDdeCli:execute( "Areas" ) }, "WHEN" => { || ::nDbgStatus == 2 } }, ;
{ "DESCRIP" => hIdioma:mnuVisorSets , "TIPO" => "1", "FLAGS1" => nil , "TECLA1" => nil , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oDdeCli:execute( "Sets" ) }, "WHEN" => { || ::nDbgStatus == 2 } }, ;
{ "TIPO" => "2" }, ;
{ "DESCRIP" => hIdioma:mnuTerminar , "TIPO" => "1", "FLAGS1" => ACC_ALT , "TECLA1" => asc( "X" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oDdeCli:execute( "Terminar" ) }, "WHEN" => { || ::nDbgStatus > 0 } }, ;
{ "TIPO" => "3" }, ;
; // Utilerías
{ "DESCRIP" => hIdioma:mnuUtilerias , "TIPO" => "0" }, ;
{ "DESCRIP" => hIdioma:mnuConfig , "TIPO" => "1", "FLAGS1" => nil , "TECLA1" => nil , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::config() } , "WHEN" => nil }, ;
{ "TIPO" => "3" }, ;
; // Menú Ventanas
{ "DESCRIP" => hIdioma:mnuWindows , "TIPO" => "0" }, ;
{ "DESCRIP" => hIdioma:mnuVentVert , "TIPO" => "1", "FLAGS1" => nil , "TECLA1" => nil , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oWnd:tile() } , "WHEN" => { || len( ::oWnd:oWndClient:aWnd ) > 0 } }, ;
{ "DESCRIP" => hIdioma:mnuVentHoriz , "TIPO" => "1", "FLAGS1" => nil , "TECLA1" => nil , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oWnd:tile( .t. ) } , "WHEN" => { || len( ::oWnd:oWndClient:aWnd ) > 0 } }, ;
{ "DESCRIP" => hIdioma:mnuVentCascada, "TIPO" => "1", "FLAGS1" => nil , "TECLA1" => nil , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oWnd:cascade() } , "WHEN" => { || len( ::oWnd:oWndClient:aWnd ) > 0 } }, ;
{ "DESCRIP" => hIdioma:mnuVentSiguien, "TIPO" => "1", "FLAGS1" => ACC_ALT , "TECLA1" => VK_RIGHT , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::ventanaSig() } , "WHEN" => { || len( ::oWnd:oWndClient:aWnd ) > 1 } }, ;
{ "DESCRIP" => hIdioma:mnuVentPrevia , "TIPO" => "1", "FLAGS1" => ACC_ALT , "TECLA1" => VK_LEFT , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::ventanaAnt() } , "WHEN" => { || len( ::oWnd:oWndClient:aWnd ) > 1 } }, ;
{ "TIPO" => "2" }, ;
{ "DESCRIP" => hIdioma:mnuArreglaIco , "TIPO" => "1", "FLAGS1" => nil , "TECLA1" => nil , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oWnd:arrangeIcons() } , "WHEN" => { || len( ::oWnd:oWndClient:aWnd ) > 0 } }, ;
{ "DESCRIP" => hIdioma:mnuIconizaTodo, "TIPO" => "1", "FLAGS1" => nil , "TECLA1" => nil , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oWnd:iconizeAll() } , "WHEN" => { || len( ::oWnd:oWndClient:aWnd ) > 0 } }, ;
{ "DESCRIP" => hIdioma:mnuCerrarTodo , "TIPO" => "1", "FLAGS1" => nil , "TECLA1" => nil , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oWnd:closeAll() } , "WHEN" => { || len( ::oWnd:oWndClient:aWnd ) > 0 } }, ;
{ "TIPO" => "3" }, ;
; // Menú Ayuda
{ "DESCRIP" => hIdioma:mnuAyuda , "TIPO" => "0" }, ;
{ "DESCRIP" => hIdioma:mnuAyuda , "TIPO" => "1", "FLAGS1" => ACC_NORMAL , "TECLA1" => VK_F1 , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || shellExecute( , "open", ::cDir + "ayuda\index.htm" ) } , "WHEN" => nil }, ;
{ "DESCRIP" => hIdioma:mnuAcercaDe , "TIPO" => "1", "FLAGS1" => nil , "TECLA1" => nil , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || acercaDe( .t.,,,,,::cNomReg ) } , "WHEN" => nil }, ;
{ "DESCRIP" => hIdioma:mnuNews , "TIPO" => "1", "FLAGS1" => nil , "TECLA1" => nil , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || shellExecute( , "open", ::cDir + "ayuda\quehaydenuevo.htm" ) }, "WHEN" => nil }, ;
{ "TIPO" => "3" } ;
}
nLen := len( ::aKeyCon )
aSize( ::aKeyCon, nLen + len( xMenu ) )
aEval( xMenu, { | x, y | ::aKeyCon[ nLen + y ] := x } )
aFill( aSize( ::hKeyDown:aAltCtrl , TOTAL_VKEYS ), .f. )
aFill( aSize( ::hKeyDown:aShiftCtrl, TOTAL_VKEYS ), .f. )
aFill( aSize( ::hKeyDown:aCtrl , TOTAL_VKEYS ), .f. )
aFill( aSize( ::hKeyDown:aShift , TOTAL_VKEYS ), .f. )
aFill( aSize( ::hKeyDown:aTecla , TOTAL_VKEYS ), .f. )
aFill( aSize( ::hKeyDown:aKeyDown , TOTAL_VKEYS ), .f. )
MENU ::oMenu 2007
FOR each hMenu in ::aKeyCon
SWITCH hMenu:tipo
CASE "0" // menuItem que inicia menú
menuItem hMenu:descrip
menu
EXIT
CASE "1" // menuItem normal
menuAddItem( hMenu:descrip + if( hMenu:flags1 == nil, "", armaKeyFlags( hMenu ) ),,,, ;
hMenu:accion,,,,, hMenu:flags1, hMenu:tecla1,,, hMenu:when )
EXIT
CASE "2" // separador
separator
EXIT
CASE "3" // endMenu
endMenu
EXIT
CASE "4" // menuItem normal asignado a una variable
hb_execFromArray( self, hMenu:variable, ;
{ menuAddItem( hMenu:descrip + if( hMenu:flags1 == nil, "", armaKeyFlags( hMenu ) ),,,, ;
hMenu:accion,,,,, hMenu:flags1, hMenu:tecla1,,, hMenu:when ) } )
EXIT
CASE "5" // menuItem que inicia menú asignado a una variable
menuItem hMenu:descrip
hb_execFromArray( self, hMenu:variable, { menuBegin() } )
EXIT
END SWITCH
// Guarda configuración del teclado
IF hMenu:tipo $ "x 14"
FOR each cCont in "12"
IF hMenu:tipo == "1" .AND. cCont == "1"
loop
ENDIF
IF hMenu[ "TECLA" + cCont ] <> nil
SWITCH hMenu[ "FLAGS" + cCont ]
CASE ACC_ALT + ACC_SHIFT
::hKeyDown:hAltShift[ hMenu[ "TECLA" + cCont ] ] := hMenu:accion
::hKeyDown:aAltShift[ hMenu[ "TECLA" + cCont ] ] := .t.
CASE ACC_CONTROL + ACC_ALT
::hKeyDown:hAltCtrl[ hMenu[ "TECLA" + cCont ] ] := hMenu:accion
::hKeyDown:aAltCtrl[ hMenu[ "TECLA" + cCont ] ] := .t.
CASE ACC_CONTROL + ACC_SHIFT
::hKeyDown:hShiftCtrl[ hMenu[ "TECLA" + cCont ] ] := hMenu:accion
::hKeyDown:aShiftCtrl[ hMenu[ "TECLA" + cCont ] ] := .t.
EXIT
CASE ACC_CONTROL
::hKeyDown:hCtrl[ hMenu[ "TECLA" + cCont ] ] := hMenu:accion
::hKeyDown:aCtrl[ hMenu[ "TECLA" + cCont ] ] := .t.
EXIT
CASE ACC_SHIFT
::hKeyDown:hShift[ hMenu[ "TECLA" + cCont ] ] := hMenu:accion
::hKeyDown:aShift[ hMenu[ "TECLA" + cCont ] ] := .t.
EXIT
DEFAULT
IF hMenu[ "TIPO" ] == "x" // Teclas espaciales que no entran a keychar, solo a keydown
::hKeyDown:hKeyDown[ hMenu[ "TECLA" + cCont ] ] := hMenu:accion
::hKeyDown:aKeyDown[ hMenu[ "TECLA" + cCont ] ] := .t.
ELSE
::hKeyDown:hTecla[ hMenu[ "TECLA" + cCont ] ] := hMenu:accion
::hKeyDown:aTecla[ hMenu[ "TECLA" + cCont ] ] := .t.
ENDIF
EXIT
END SWITCH
ENDIF
NEXT
ENDIF
NEXT
ENDMENU
::oMenu:oIde := self
return ::oMenu
static function codeBlockCreaVentana( self, value )
return { || ::oFuente:creaVentana( value ) }
Esta es casi toda la la función donde creo el menú, no me dejo subirla toda por el límite de caracteres, pero quito solamente líneas en la creación del ::aKeyCon, y no lo muestro como código porque no se muestra el mensaje
function menuPrincipal
local /*oMenu, */xMenu, nLen, hMenu, cCont
local self := qSelf()
::aKeyCon := { ; // Lista de funciones programables "TIPO" => " " , "x"- Teclas en tiempo de edición, "0" y "5"- inicia menu, "1" , "4"- menuItem, "2" separador dentro del menú "3" fin de menú
; // Teclas en tiempo de edición
{ "DESCRIP" => hIdioma:curBckSpc , "TIPO" => " ", "FLAGS1" => ACC_NORMAL , "TECLA1" => VK_BACK , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:delete( .t. ) } }, ;
{ "DESCRIP" => hIdioma:curReturn , "TIPO" => " ", "FLAGS1" => ACC_NORMAL , "TECLA1" => VK_RETURN , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:edit_return() } }, ;
{ "DESCRIP" => hIdioma:curTab , "TIPO" => " ", "FLAGS1" => ACC_NORMAL , "TECLA1" => VK_TAB , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:edit_tabulador() } }, ;
{ "DESCRIP" => hIdioma:curEsc , "TIPO" => " ", "FLAGS1" => ACC_NORMAL , "TECLA1" => VK_ESCAPE , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || nil } }, ;
{ "DESCRIP" => hIdioma:curInsertar , "TIPO" => "x", "FLAGS1" => ACC_NORMAL , "TECLA1" => VK_INSERT , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:toggleInsert() } }, ;
{ "DESCRIP" => hIdioma:curSelIni , "TIPO" => " ", "FLAGS1" => ACC_SHIFT , "TECLA1" => VK_HOME , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || if( ::oFuente:nPressDown == 1, ::oFuente:goBeginChar( .t. ), if( ::oFuente:nPressDown == 2, ::oFuente:goBeginLine( .t. ), if( ::oFuente:nPressDown == 3, ::oFuente:goBeginWindow( .t. ), if( ::oFuente:nPressDown == 4, ::oFuente:goTop( .t. ), ) ) ) ) } }, ;
{ "DESCRIP" => hIdioma:curSelFin , "TIPO" => " ", "FLAGS1" => ACC_SHIFT , "TECLA1" => VK_END , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || if( ::oFuente:nPressDown == 1, ::oFuente:goEndLine( .t. ), if( ::oFuente:nPressDown == 2, ::oFuente:goEndWindow( .t. ), if( ::oFuente:nPressDown == 3, ::oFuente:goBottom( .t. ), ) ) ) } }, ;
{ "DESCRIP" => hIdioma:curInicio , "TIPO" => " ", "FLAGS1" => ACC_NORMAL , "TECLA1" => VK_HOME , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || if( ::oFuente:nPressDown == 1, ::oFuente:goBeginChar( .f. ), if( ::oFuente:nPressDown == 2, ::oFuente:goBeginLine( .f. ), if( ::oFuente:nPressDown == 3, ::oFuente:goBeginWindow( .f. ), if( ::oFuente:nPressDown == 4, ::oFuente:goTop( .f. ), ) ) ) ) } }, ;
{ "DESCRIP" => hIdioma:curFin , "TIPO" => "x", "FLAGS1" => ACC_NORMAL , "TECLA1" => VK_END , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || if( ::oFuente:nPressDown == 1, ::oFuente:goEndLine( .f. ), if( ::oFuente:nPressDown == 2, ::oFuente:goEndWindow( .f. ), if( ::oFuente:nPressDown == 3, ::oFuente:goBottom( .f. ), ) ) ) } }, ;
; // Menú Archivo
{ "DESCRIP" => hIdioma:mnuArchivo , "TIPO" => "5", "VARIABLE" => "_OITMARCH" }, ;
{ "DESCRIP" => hIdioma:mnuNuevo , "TIPO" => "1", "FLAGS1" => nil , "TECLA1" => nil , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::fuenteNuevo() } , "WHEN" => nil }, ;
{ "DESCRIP" => hIdioma:mnuAbrir , "TIPO" => "1", "FLAGS1" => ACC_NORMAL , "TECLA1" => VK_F3 , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::abrirFuente() } , "WHEN" => nil }, ;
{ "DESCRIP" => hIdioma:mnuGuardar , "TIPO" => "1", "FLAGS1" => ACC_NORMAL , "TECLA1" => VK_F2 , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:saveToFile() }, "WHEN" => { || ::oFuente <> nil .AND. ::oFuente:lChanged } }, ;
{ "DESCRIP" => hIdioma:mnuGuardarComo, "TIPO" => "1", "FLAGS1" => nil , "TECLA1" => nil , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:saveToFile( , .t. ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:mnuGuardarTodo, "TIPO" => "1", "FLAGS1" => ACC_CONTROL, "TECLA1" => VK_F2 , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::guardarTodo() } , "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:mnuCerrar , "TIPO" => "1", "FLAGS1" => ACC_SHIFT , "TECLA1" => VK_F2 , "FLAGS2" => ACC_CONTROL, "TECLA2" => VK_F4 , "ACCION" => { || ::oFuente:cerrar() } , "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:mnuCerrarTodo , "TIPO" => "1", "FLAGS1" => ACC_SHIFT , "TECLA1" => VK_F3 , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oWnd:closeAll() } , "WHEN" => { || ::oFuente <> nil } }, ;
{ "TIPO" => "2" }, ;
{ "DESCRIP" => hIdioma:mnuProyectos , "TIPO" => "1", "FLAGS1" => nil , "TECLA1" => nil , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::proyectos() } , "WHEN" => nil }, ;
{ "TIPO" => "2" }, ;
{ "DESCRIP" => hIdioma:mnuOS_shell , "TIPO" => "1", "FLAGS1" => nil , "TECLA1" => nil , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || shellExecute( , "open", getEnv( "COMSPEC" ),,, SW_SHOWNORMAL ) }, "WHEN" => nil }, ;
{ "TIPO" => "2" }, ;
{ "DESCRIP" => hIdioma:mnuImprimir , "TIPO" => "1", "FLAGS1" => ACC_CONTROL, "TECLA1" => asc( "P" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oWnd:print() } , "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:mnuConfImp , "TIPO" => "1", "FLAGS1" => ACC_ALTCTRL, "TECLA1" => asc( "P" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || printerSetup() } , "WHEN" => { || ::oFuente <> nil } }, ;
{ "TIPO" => "2" }, ;
{ "DESCRIP" => hIdioma:mnuPreprocesar, "TIPO" => "0" }, ;
{ "DESCRIP" => hIdioma:mnuDirInclude , "TIPO" => "1", "FLAGS1" => nil , "TECLA1" => nil , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::config( 2 ) } , "WHEN" => nil }, ;
{ "DESCRIP" => hIdioma:mnuPPCompacto , "TIPO" => "1", "FLAGS1" => nil , "TECLA1" => nil , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:preproceso( 0 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:mnuPPNormal , "TIPO" => "1", "FLAGS1" => nil , "TECLA1" => nil , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:preproceso( 1 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:mnuPPDetallado, "TIPO" => "1", "FLAGS1" => nil , "TECLA1" => nil , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:preproceso( 2 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "TIPO" => "3" }, ;
{ "TIPO" => "2" }, ;
{ "DESCRIP" => hIdioma:mnuSalir , "TIPO" => "1", "FLAGS1" => ACC_ALT , "TECLA1" => VK_F4 , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oWnd:end() } , "WHEN" => nil }, ;
{ "TIPO" => "2" }, ;
{ "TIPO" => "3" }, ;
; // Menú Editar
{ "DESCRIP" => hIdioma:mnuEditar , "TIPO" => "0" }, ;
{ "DESCRIP" => hIdioma:mnuUndo , "TIPO" => "1", "FLAGS1" => ACC_ALT , "TECLA1" => VK_BACK , "FLAGS2" => ACC_CONTROL, "TECLA2" => asc( "Z" ), "ACCION" => { || ::oFuente:undo() } , "WHEN" => { || ::oFuente <> nil .AND. len( ::oFuente:aDelLines ) >= ::oFuente:nUndo } }, ;
{ "DESCRIP" => hIdioma:mnuRedo , "TIPO" => "1", "FLAGS1" => ACC_ALT , "TECLA1" => VK_RETURN , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:redo() } , "WHEN" => { || ::oFuente <> nil .AND. ::oFuente:nUndo > 1 } }, ;
{ "TIPO" => "2" }, ;
{ "DESCRIP" => hIdioma:mnuCortar , "TIPO" => "1", "FLAGS1" => ACC_CONTROL, "TECLA1" => asc( "X" ), "FLAGS2" => ACC_SHIFT , "TECLA2" => VK_DELETE , "ACCION" => { || ::oFuente:shift_delete()}, "WHEN" => { || ::oFuente <> nil .AND. ::oFuente:hSelect <> nil .and. !::oFuente:lReadOnly } }, ;
{ "DESCRIP" => hIdioma:mnuCopiar , "TIPO" => "1", "FLAGS1" => ACC_CONTROL, "TECLA1" => asc( "C" ), "FLAGS2" => ACC_CONTROL, "TECLA2" => VK_INSERT , "ACCION" => { || ::oFuente:ctrl_insert()}, "WHEN" => { || ::oFuente <> nil .AND. ::oFuente:hSelect <> nil } }, ;
{ "DESCRIP" => hIdioma:mnuPegar , "TIPO" => "1", "FLAGS1" => ACC_CONTROL, "TECLA1" => asc( "V" ), "FLAGS2" => ACC_SHIFT , "TECLA2" => VK_INSERT , "ACCION" => { || ::oFuente:paste() } , "WHEN" => { || ::oFuente <> nil .AND. !::oFuente:lReadOnly } }, ;
{ "DESCRIP" => hIdioma:mnuSuprimir , "TIPO" => "1", "FLAGS1" => ACC_NORMAL , "TECLA1" => VK_DELETE , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:delete( .f. )}, "WHEN" => { || ::oFuente <> nil .AND. !::oFuente:lReadOnly } }, ;
{ "TIPO" => "2" }, ;
{ "DESCRIP" => hIdioma:mnuSelLine , "TIPO" => "1", "FLAGS1" => ACC_NORMAL , "TECLA1" => VK_F7 , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:edit_insert( SELECCION_LINEA ) } , "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:mnuSelbloque , "TIPO" => "1", "FLAGS1" => ACC_SHIFT , "TECLA1" => VK_F7 , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:edit_insert( SELECCION_BLOQUE ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:mnuMovCursor , "TIPO" => "0" }, ;
{ "DESCRIP" => hIdioma:curSelLinPrev , "TIPO" => "1", "FLAGS1" => ACC_SHIFT , "TECLA1" => VK_UP , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:goPrevLine( .t. ) }, "WHEN" => nil }, ;
{ "DESCRIP" => hIdioma:curSelLinSig , "TIPO" => "1", "FLAGS1" => ACC_SHIFT , "TECLA1" => VK_DOWN , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || if( ::oFuente:lActDer .OR. ::oFuente:nLine() < len( ::oFuente:aLines ) + 1, ::oFuente:goNextLine( .t. ), ) }, "WHEN" => nil }, ;
{ "DESCRIP" => hIdioma:curSelIzq , "TIPO" => "1", "FLAGS1" => ACC_SHIFT , "TECLA1" => VK_LEFT , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:goPrevChar( .t. ) }, "WHEN" => nil }, ;
{ "DESCRIP" => hIdioma:curSelDer , "TIPO" => "1", "FLAGS1" => ACC_SHIFT , "TECLA1" => VK_RIGHT , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:goNextChar( .t. ) }, "WHEN" => nil }, ;
{ "DESCRIP" => hIdioma:curSelWordPrev, "TIPO" => "1", "FLAGS1" => ACC_CTRLSHF, "TECLA1" => VK_LEFT , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:goPrevWord( .t. ) }, "WHEN" => nil }, ;
{ "DESCRIP" => hIdioma:curSelWordSig , "TIPO" => "1", "FLAGS1" => ACC_CTRLSHF, "TECLA1" => VK_RIGHT , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:goNextWord( .t. ) }, "WHEN" => nil }, ;
{ "DESCRIP" => hIdioma:curSelPagSig , "TIPO" => "1", "FLAGS1" => ACC_SHIFT , "TECLA1" => VK_NEXT , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:pageDown( .t. ) }, "WHEN" => nil }, ;
{ "DESCRIP" => hIdioma:curSelPagPrev , "TIPO" => "1", "FLAGS1" => ACC_SHIFT , "TECLA1" => VK_PRIOR , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:pageUp( .t. )}, "WHEN" => nil }, ;
{ "DESCRIP" => hIdioma:curSelIniArch , "TIPO" => "1", "FLAGS1" => ACC_CTRLSHF, "TECLA1" => VK_HOME , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:goTop( .t. ) }, "WHEN" => nil }, ;
{ "DESCRIP" => hIdioma:curSelFinArch , "TIPO" => "1", "FLAGS1" => ACC_CTRLSHF, "TECLA1" => VK_END , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:goBottom( .t. ) }, "WHEN" => nil }, ;
{ "DESCRIP" => hIdioma:curSelScrlUp , "TIPO" => "1", "FLAGS1" => ACC_CTRLSHF, "TECLA1" => VK_UP , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:scrollUp( .t. ) } , "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:curSelScrlDown, "TIPO" => "1", "FLAGS1" => ACC_CTRLSHF, "TECLA1" => VK_DOWN , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:scrollDown( .t. ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "TIPO" => "3" }, ;
{ "TIPO" => "2" }, ;
{ "DESCRIP" => hIdioma:mnuInsVentana , "TIPO" => "0" } ;
}
FOR each xMenu in ::hVentanas
aAdd( ::aKeyCon, { "DESCRIP" => xMenu:menu, "TIPO" => "1", "FLAGS1" => nil , "TECLA1" => nil , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => codeBlockCreaVentana( self, xMenu:__enumValue() ), "WHEN" => { || ::oFuente <> nil } } )
NEXT
xMenu := { ;
{ "TIPO" => "3" }, ;
{ "TIPO" => "2" }, ;
{ "DESCRIP" => hIdioma:mnuVentCodAct , "TIPO" => "1", "FLAGS1" => ACC_ALTCTRL, "TECLA1" => asc( "V" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:verVentana() }, "WHEN" => { || ::oFuente <> nil .AND. !empty( ::oFuente:aVentanas ) } }, ;
{ "TIPO" => "3" }, ;
; // Buscar
{ "DESCRIP" => hIdioma:mnuBuscar , "TIPO" => "0" }, ;
{ "DESCRIP" => hIdioma:mnuBuscar , "TIPO" => "1", "FLAGS1" => ACC_NORMAL , "TECLA1" => VK_F5 , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:dlgFind() } , "WHEN" => { || ::oFuente <> nil } }, ;
{ "TIPO" => "2" }, ;
{ "DESCRIP" => hIdioma:mnuIrALinea , "TIPO" => "1", "FLAGS1" => ACC_ALT , "TECLA1" => VK_F5 , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:dlgGoLine( ,, .t. ) } , "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:curModifiUp , "TIPO" => "1", "FLAGS1" => ACC_ALTSHFT, "TECLA1" => VK_UP , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:modificadaUp() }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:curModifiDown , "TIPO" => "1", "FLAGS1" => ACC_ALTSHFT, "TECLA1" => VK_DOWN , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:modificadaDown() }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:mnuMovCursor , "TIPO" => "0" }, ;
{ "DESCRIP" => hIdioma:curLinPrev , "TIPO" => "1", "FLAGS1" => ACC_NORMAL , "TECLA1" => VK_UP , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:goPrevLine( .f. ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:curLinSig , "TIPO" => "1", "FLAGS1" => ACC_NORMAL , "TECLA1" => VK_DOWN , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || if( ::oFuente:lActDer .OR. ::oFuente:nLine() < len( ::oFuente:aLines ) + 1, ::oFuente:goNextLine( .f. ), ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:curChrPrev , "TIPO" => "1", "FLAGS1" => ACC_NORMAL , "TECLA1" => VK_LEFT , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:goPrevChar( .f. ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:curChrSig , "TIPO" => "1", "FLAGS1" => ACC_NORMAL , "TECLA1" => VK_RIGHT , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:goNextChar( .f. ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:curWordPre , "TIPO" => "1", "FLAGS1" => ACC_CONTROL, "TECLA1" => VK_LEFT , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:goPrevWord( .f. ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:curWordSig , "TIPO" => "1", "FLAGS1" => ACC_CONTROL, "TECLA1" => VK_RIGHT , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:goNextWord( .f. ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:curPagSig , "TIPO" => "1", "FLAGS1" => ACC_NORMAL , "TECLA1" => VK_NEXT , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:pageDown( .f. ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:curPagPrev , "TIPO" => "1", "FLAGS1" => ACC_NORMAL , "TECLA1" => VK_PRIOR , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:pageUp( .f. )}, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:curIniArch , "TIPO" => "1", "FLAGS1" => ACC_CONTROL, "TECLA1" => VK_HOME , "FLAGS2" => ACC_CONTROL, "TECLA2" => VK_PRIOR , "ACCION" => { || ::oFuente:goTop( .f. ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:curFinArch , "TIPO" => "1", "FLAGS1" => ACC_CONTROL, "TECLA1" => VK_END , "FLAGS2" => ACC_CONTROL, "TECLA2" => VK_NEXT , "ACCION" => { || ::oFuente:goBottom( .f. ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:curScrollUp , "TIPO" => "1", "FLAGS1" => ACC_CONTROL, "TECLA1" => VK_UP , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:scrollUp( .f. ) } , "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:curScrollDown , "TIPO" => "1", "FLAGS1" => ACC_CONTROL, "TECLA1" => VK_DOWN , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:scrollDown( .f. ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:curFindUp , "TIPO" => "1", "FLAGS1" => ACC_ALTCTRL, "TECLA1" => VK_UP , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:findCursor( .t. ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:curFindDown , "TIPO" => "1", "FLAGS1" => ACC_ALTCTRL, "TECLA1" => VK_DOWN , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:findCursor( .f. ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "TIPO" => "3" }, ;
{ "TIPO" => "2" }, ;
{ "DESCRIP" => hIdioma:mnuBanderaPone, "TIPO" => "1", "FLAGS1" => ACC_NORMAL , "TECLA1" => VK_F4 , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:bandera( .t. ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:mnuBanderaIr , "TIPO" => "1", "FLAGS1" => ACC_SHIFT , "TECLA1" => VK_F4 , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:bandera( .f. ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:mnuMarcadorPon, "TIPO" => "0" }, ;
{ "DESCRIP" => "1" , "TIPO" => "1", "FLAGS1" => ACC_ALT , "TECLA1" => asc( "1" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:marcador( 1, 1 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => "2" , "TIPO" => "1", "FLAGS1" => ACC_ALT , "TECLA1" => asc( "2" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:marcador( 2, 1 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => "3" , "TIPO" => "1", "FLAGS1" => ACC_ALT , "TECLA1" => asc( "3" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:marcador( 3, 1 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => "4" , "TIPO" => "1", "FLAGS1" => ACC_ALT , "TECLA1" => asc( "4" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:marcador( 4, 1 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => "5" , "TIPO" => "1", "FLAGS1" => ACC_ALT , "TECLA1" => asc( "5" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:marcador( 5, 1 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => "6" , "TIPO" => "1", "FLAGS1" => ACC_ALT , "TECLA1" => asc( "6" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:marcador( 6, 1 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => "9" , "TIPO" => "1", "FLAGS1" => ACC_ALT , "TECLA1" => asc( "9" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:marcador( 9, 1 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => "0" , "TIPO" => "1", "FLAGS1" => ACC_ALT , "TECLA1" => asc( "0" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:marcador( 10, 1 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "TIPO" => "3" }, ;
{ "DESCRIP" => hIdioma:mnuMarcadorIr , "TIPO" => "0" }, ;
{ "DESCRIP" => "1" , "TIPO" => "1", "FLAGS1" => ACC_CONTROL, "TECLA1" => asc( "1" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:marcador( 1, 2 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => "2" , "TIPO" => "1", "FLAGS1" => ACC_CONTROL, "TECLA1" => asc( "2" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:marcador( 2, 2 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => "3" , "TIPO" => "1", "FLAGS1" => ACC_CONTROL, "TECLA1" => asc( "3" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:marcador( 3, 2 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => "4" , "TIPO" => "1", "FLAGS1" => ACC_CONTROL, "TECLA1" => asc( "4" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:marcador( 4, 2 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => "5" , "TIPO" => "1", "FLAGS1" => ACC_CONTROL, "TECLA1" => asc( "5" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:marcador( 5, 2 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => "6" , "TIPO" => "1", "FLAGS1" => ACC_CONTROL, "TECLA1" => asc( "6" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:marcador( 6, 2 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => "9" , "TIPO" => "1", "FLAGS1" => ACC_CONTROL, "TECLA1" => asc( "9" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:marcador( 9, 2 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => "0" , "TIPO" => "1", "FLAGS1" => ACC_CONTROL, "TECLA1" => asc( "0" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:marcador( 10, 2 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "TIPO" => "3" }, ;
{ "DESCRIP" => hIdioma:mnuMarcadorBor, "TIPO" => "0" }, ;
{ "DESCRIP" => "1" , "TIPO" => "1", "FLAGS1" => ACC_ALTCTRL, "TECLA1" => asc( "1" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:marcador( 1, 3 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => "2" , "TIPO" => "1", "FLAGS1" => ACC_ALTCTRL, "TECLA1" => asc( "2" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:marcador( 2, 3 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => "3" , "TIPO" => "1", "FLAGS1" => ACC_ALTCTRL, "TECLA1" => asc( "3" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:marcador( 3, 3 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => "4" , "TIPO" => "1", "FLAGS1" => ACC_ALTCTRL, "TECLA1" => asc( "4" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:marcador( 4, 3 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => "5" , "TIPO" => "1", "FLAGS1" => ACC_ALTCTRL, "TECLA1" => asc( "5" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:marcador( 5, 3 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => "6" , "TIPO" => "1", "FLAGS1" => ACC_ALTCTRL, "TECLA1" => asc( "6" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:marcador( 6, 3 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => "9" , "TIPO" => "1", "FLAGS1" => ACC_ALTCTRL, "TECLA1" => asc( "9" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:marcador( 9, 3 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => "0" , "TIPO" => "1", "FLAGS1" => ACC_ALTCTRL, "TECLA1" => asc( "0" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:marcador( 10, 3 ) }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "TIPO" => "3" }, ;
{ "TIPO" => "2" }, ;
{ "DESCRIP" => hIdioma:mnuListaFunc , "TIPO" => "1", "FLAGS1" => ACC_ALTSHFT, "TECLA1" => asc( "F" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:listaFunciones() }, "WHEN" => { || ::oFuente <> nil .AND. !empty( ::oFuente:aFunciones ) } }, ;
{ "DESCRIP" => hIdioma:mnuListaVent , "TIPO" => "1", "FLAGS1" => ACC_ALTSHFT, "TECLA1" => asc( "V" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:listaVentanas() } , "WHEN" => { || ::oFuente <> nil .AND. !empty( ::oFuente:aVentanas ) } }, ;
{ "TIPO" => "3" }, ;
; // Texto
{ "DESCRIP" => hIdioma:mnuTexto , "TIPO" => "0" }, ;
{ "DESCRIP" => hIdioma:mnuComentario , "TIPO" => "1", "FLAGS1" => ACC_CTRLSHF, "TECLA1" => asc( "C" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:comentario() }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:mnuMayusMinus , "TIPO" => "1", "FLAGS1" => ACC_ALT , "TECLA1" => asc( "C" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:changeCase() }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "DESCRIP" => hIdioma:mnuDlgMayusMi , "TIPO" => "1", "FLAGS1" => ACC_ALTSHFT, "TECLA1" => asc( "C" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:selectCase() }, "WHEN" => { || ::oFuente <> nil } }, ;
{ "TIPO" => "3" }, ;
; // Depurador (debugger)
{ "DESCRIP" => hIdioma:mnuDebugger , "TIPO" => "0" }, ;
{ "DESCRIP" => hIdioma:mnuRun , "TIPO" => "1", "FLAGS1" => ACC_NORMAL , "TECLA1" => VK_F6 , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::ejecutar() } , "WHEN" => { || ::nDbgStatus == 0 } }, ;
{ "TIPO" => "2" }, ;
{ "DESCRIP" => hIdioma:mnuCompilar , "TIPO" => "1", "FLAGS1" => ACC_NORMAL , "TECLA1" => VK_F9 , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::compilar( .f. ) } , "WHEN" => { || ::nDbgStatus == 0 } }, ;
{ "DESCRIP" => hIdioma:mnuReconstruir, "TIPO" => "1", "FLAGS1" => ACC_SHIFT , "TECLA1" => VK_F9 , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::compilar( .t. ) } , "WHEN" => { || ::nDbgStatus == 0 } }, ;
{ "DESCRIP" => hIdioma:mnuDebugger , "TIPO" => "4", "FLAGS1" => nil , "TECLA1" => nil , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { | oItm | oItm:setCheck( !oItm:lChecked ) }, "WHEN" => { || ::nDbgStatus == 0 }, "VARIABLE" => "_OITMDBG" }, ;
{ "TIPO" => "2" }, ;
{ "DESCRIP" => hIdioma:mnuContinuar , "TIPO" => "1", "FLAGS1" => ACC_SHIFT , "TECLA1" => VK_F8 , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oDdeCli:execute( "Seguir" ), ::nDbgStatus := 1 }, "WHEN" => { || ::nDbgStatus == 2 } }, ;
{ "DESCRIP" => hIdioma:mnuStep , "TIPO" => "1", "FLAGS1" => ACC_NORMAL , "TECLA1" => VK_F8 , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oDdeCli:execute( "Paso" ), ::nDbgStatus := 1 }, "WHEN" => { || ::nDbgStatus == 2 } }, ;
{ "DESCRIP" => hIdioma:mnuRutina , "TIPO" => "1", "FLAGS1" => ACC_CONTROL, "TECLA1" => VK_F9 , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oDdeCli:execute( "Trace" ) }, "WHEN" => { || ::nDbgStatus == 2 } }, ;
{ "DESCRIP" => hIdioma:mnuSigrutina , "TIPO" => "1", "FLAGS1" => ACC_ALT , "TECLA1" => VK_F9 , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oDdeCli:execute( "Siguiente" ) }, "WHEN" => { || ::nDbgStatus == 2 } }, ;
{ "DESCRIP" => hIdioma:mnuHastaCursor, "TIPO" => "1", "FLAGS1" => ACC_CONTROL, "TECLA1" => VK_F8 , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oDdeCli:execute( "Línea" + str( ::oFuente:nLine, 6 ) + ::oFuente:cNomSinPath ) }, "WHEN" => { || ::nDbgStatus == 2 } }, ;
{ "TIPO" => "2" }, ;
{ "DESCRIP" => hIdioma:mnuBreakPoint , "TIPO" => "1", "FLAGS1" => ACC_ALT , "TECLA1" => VK_F10 , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oFuente:breakPoint() }, "WHEN" => { || ::nDbgStatus == 2 } }, ;
{ "DESCRIP" => "alt&D()" , "TIPO" => "1", "FLAGS1" => ACC_ALT , "TECLA1" => asc( "D" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oDdeCli:execute( "altD()" ) }, "WHEN" => { || ::nDbgStatus > 0 } }, ;
{ "TIPO" => "2" }, ;
{ "DESCRIP" => hIdioma:mnuVelocidad , "TIPO" => "1", "FLAGS1" => nil , "TECLA1" => nil , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oDdeCli:execute( "Velocidad" ) }, "WHEN" => { || ::nDbgStatus > 0 } }, ;
{ "DESCRIP" => hIdioma:mnuAnimado , "TIPO" => "1", "FLAGS1" => nil , "TECLA1" => nil , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oDdeCli:execute( "Animado" ) }, "WHEN" => { || ::nDbgStatus == 2 } }, ;
{ "TIPO" => "2" }, ;
{ "DESCRIP" => hIdioma:mnuVariables , "TIPO" => "1", "FLAGS1" => ACC_ALT , "TECLA1" => VK_F6 , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oDdeCli:execute( "Variables" ) }, "WHEN" => { || ::nDbgStatus == 2 } }, ;
{ "DESCRIP" => hIdioma:mnuWorkAreas , "TIPO" => "1", "FLAGS1" => ACC_SHIFT , "TECLA1" => VK_F6 , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oDdeCli:execute( "Areas" ) }, "WHEN" => { || ::nDbgStatus == 2 } }, ;
{ "DESCRIP" => hIdioma:mnuVisorSets , "TIPO" => "1", "FLAGS1" => nil , "TECLA1" => nil , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oDdeCli:execute( "Sets" ) }, "WHEN" => { || ::nDbgStatus == 2 } }, ;
{ "TIPO" => "2" }, ;
{ "DESCRIP" => hIdioma:mnuTerminar , "TIPO" => "1", "FLAGS1" => ACC_ALT , "TECLA1" => asc( "X" ), "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oDdeCli:execute( "Terminar" ) }, "WHEN" => { || ::nDbgStatus > 0 } }, ;
{ "TIPO" => "3" }, ;
; // Utilerías
{ "DESCRIP" => hIdioma:mnuUtilerias , "TIPO" => "0" }, ;
{ "DESCRIP" => hIdioma:mnuConfig , "TIPO" => "1", "FLAGS1" => nil , "TECLA1" => nil , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::config() } , "WHEN" => nil }, ;
{ "TIPO" => "3" }, ;
; // Menú Ventanas
{ "DESCRIP" => hIdioma:mnuWindows , "TIPO" => "0" }, ;
{ "DESCRIP" => hIdioma:mnuVentVert , "TIPO" => "1", "FLAGS1" => nil , "TECLA1" => nil , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oWnd:tile() } , "WHEN" => { || len( ::oWnd:oWndClient:aWnd ) > 0 } }, ;
{ "DESCRIP" => hIdioma:mnuVentHoriz , "TIPO" => "1", "FLAGS1" => nil , "TECLA1" => nil , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oWnd:tile( .t. ) } , "WHEN" => { || len( ::oWnd:oWndClient:aWnd ) > 0 } }, ;
{ "DESCRIP" => hIdioma:mnuVentCascada, "TIPO" => "1", "FLAGS1" => nil , "TECLA1" => nil , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oWnd:cascade() } , "WHEN" => { || len( ::oWnd:oWndClient:aWnd ) > 0 } }, ;
{ "DESCRIP" => hIdioma:mnuVentSiguien, "TIPO" => "1", "FLAGS1" => ACC_ALT , "TECLA1" => VK_RIGHT , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::ventanaSig() } , "WHEN" => { || len( ::oWnd:oWndClient:aWnd ) > 1 } }, ;
{ "DESCRIP" => hIdioma:mnuVentPrevia , "TIPO" => "1", "FLAGS1" => ACC_ALT , "TECLA1" => VK_LEFT , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::ventanaAnt() } , "WHEN" => { || len( ::oWnd:oWndClient:aWnd ) > 1 } }, ;
{ "TIPO" => "2" }, ;
{ "DESCRIP" => hIdioma:mnuArreglaIco , "TIPO" => "1", "FLAGS1" => nil , "TECLA1" => nil , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oWnd:arrangeIcons() } , "WHEN" => { || len( ::oWnd:oWndClient:aWnd ) > 0 } }, ;
{ "DESCRIP" => hIdioma:mnuIconizaTodo, "TIPO" => "1", "FLAGS1" => nil , "TECLA1" => nil , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oWnd:iconizeAll() } , "WHEN" => { || len( ::oWnd:oWndClient:aWnd ) > 0 } }, ;
{ "DESCRIP" => hIdioma:mnuCerrarTodo , "TIPO" => "1", "FLAGS1" => nil , "TECLA1" => nil , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || ::oWnd:closeAll() } , "WHEN" => { || len( ::oWnd:oWndClient:aWnd ) > 0 } }, ;
{ "TIPO" => "3" }, ;
; // Menú Ayuda
{ "DESCRIP" => hIdioma:mnuAyuda , "TIPO" => "0" }, ;
{ "DESCRIP" => hIdioma:mnuAyuda , "TIPO" => "1", "FLAGS1" => ACC_NORMAL , "TECLA1" => VK_F1 , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || shellExecute( , "open", ::cDir + "ayuda\index.htm" ) } , "WHEN" => nil }, ;
{ "DESCRIP" => hIdioma:mnuAcercaDe , "TIPO" => "1", "FLAGS1" => nil , "TECLA1" => nil , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || acercaDe( .t.,,,,,::cNomReg ) } , "WHEN" => nil }, ;
{ "DESCRIP" => hIdioma:mnuNews , "TIPO" => "1", "FLAGS1" => nil , "TECLA1" => nil , "FLAGS2" => nil , "TECLA2" => nil , "ACCION" => { || shellExecute( , "open", ::cDir + "ayuda\quehaydenuevo.htm" ) }, "WHEN" => nil }, ;
{ "TIPO" => "3" } ;
}
nLen := len( ::aKeyCon )
aSize( ::aKeyCon, nLen + len( xMenu ) )
aEval( xMenu, { | x, y | ::aKeyCon[ nLen + y ] := x } )
aFill( aSize( ::hKeyDown:aAltCtrl , TOTAL_VKEYS ), .f. )
aFill( aSize( ::hKeyDown:aShiftCtrl, TOTAL_VKEYS ), .f. )
aFill( aSize( ::hKeyDown:aCtrl , TOTAL_VKEYS ), .f. )
aFill( aSize( ::hKeyDown:aShift , TOTAL_VKEYS ), .f. )
aFill( aSize( ::hKeyDown:aTecla , TOTAL_VKEYS ), .f. )
aFill( aSize( ::hKeyDown:aKeyDown , TOTAL_VKEYS ), .f. )
MENU ::oMenu 2007
FOR each hMenu in ::aKeyCon
SWITCH hMenu:tipo
CASE "0" // menuItem que inicia menú
menuItem hMenu:descrip
menu
EXIT
CASE "1" // menuItem normal
menuAddItem( hMenu:descrip + if( hMenu:flags1 == nil, "", armaKeyFlags( hMenu ) ),,,, ;
hMenu:accion,,,,, hMenu:flags1, hMenu:tecla1,,, hMenu:when )
EXIT
CASE "2" // separador
separator
EXIT
CASE "3" // endMenu
endMenu
EXIT
CASE "4" // menuItem normal asignado a una variable
hb_execFromArray( self, hMenu:variable, ;
{ menuAddItem( hMenu:descrip + if( hMenu:flags1 == nil, "", armaKeyFlags( hMenu ) ),,,, ;
hMenu:accion,,,,, hMenu:flags1, hMenu:tecla1,,, hMenu:when ) } )
EXIT
CASE "5" // menuItem que inicia menú asignado a una variable
menuItem hMenu:descrip
hb_execFromArray( self, hMenu:variable, { menuBegin() } )
EXIT
END SWITCH
// Guarda configuración del teclado
IF hMenu:tipo $ "x 14"
FOR each cCont in "12"
IF hMenu:tipo == "1" .AND. cCont == "1"
loop
ENDIF
IF hMenu[ "TECLA" + cCont ] <> nil
SWITCH hMenu[ "FLAGS" + cCont ]
CASE ACC_ALT + ACC_SHIFT
::hKeyDown:hAltShift[ hMenu[ "TECLA" + cCont ] ] := hMenu:accion
::hKeyDown:aAltShift[ hMenu[ "TECLA" + cCont ] ] := .t.
CASE ACC_CONTROL + ACC_ALT
::hKeyDown:hAltCtrl[ hMenu[ "TECLA" + cCont ] ] := hMenu:accion
::hKeyDown:aAltCtrl[ hMenu[ "TECLA" + cCont ] ] := .t.
CASE ACC_CONTROL + ACC_SHIFT
::hKeyDown:hShiftCtrl[ hMenu[ "TECLA" + cCont ] ] := hMenu:accion
::hKeyDown:aShiftCtrl[ hMenu[ "TECLA" + cCont ] ] := .t.
EXIT
CASE ACC_CONTROL
::hKeyDown:hCtrl[ hMenu[ "TECLA" + cCont ] ] := hMenu:accion
::hKeyDown:aCtrl[ hMenu[ "TECLA" + cCont ] ] := .t.
EXIT
CASE ACC_SHIFT
::hKeyDown:hShift[ hMenu[ "TECLA" + cCont ] ] := hMenu:accion
::hKeyDown:aShift[ hMenu[ "TECLA" + cCont ] ] := .t.
EXIT
DEFAULT
IF hMenu[ "TIPO" ] == "x" // Teclas espaciales que no entran a keychar, solo a keydown
::hKeyDown:hKeyDown[ hMenu[ "TECLA" + cCont ] ] := hMenu:accion
::hKeyDown:aKeyDown[ hMenu[ "TECLA" + cCont ] ] := .t.
ELSE
::hKeyDown:hTecla[ hMenu[ "TECLA" + cCont ] ] := hMenu:accion
::hKeyDown:aTecla[ hMenu[ "TECLA" + cCont ] ] := .t.
ENDIF
EXIT
END SWITCH
ENDIF
NEXT
ENDIF
NEXT
ENDMENU
::oMenu:oIde := self
return ::oMenu
static function codeBlockCreaVentana( self, value )
return { || ::oFuente:creaVentana( value ) }
Saludos
Quique
Quique
Re: Error con un programa de fivewin en una maquina virtual
Esta es solo la definición de la clase editor() para que me digas que es lo que necesitarias ver
Code: Select all | Expand
class editor from tTxtEdit
data aAtThis // Caracteres que indican color a partir de ahí hasta el final de la línea
data aBanderas // Lísta de líneas marcads para localización rápida (F4) (las imágenes se guardan en ::hBmps)
data aMarcadores // Lista de marcadores ( 0 - 9 ) (las imágenes se guardan en ::hBmps)
data cBegBlock // Caracteres que indican inicio de bloque
data cEndBlock // Caracteres que indican final de bloque
data aFunciones // Arreglo con la lista de funciones del archivo
data aVentanas // Arreglo con las ventanas que se tienen en el archivo
data cNomSinPath // Nombre del archivo sin el directorio
data cString // Lista de caracteres que indícan cadena de caracteres
data hBmps // Hash con los bitmaps que se tienen cargados en memoria
data hSelect // Información de la selección
data lHScroll
data lMarco init .t. hidden // Indica si se pina el marco de la línea actual
data lReadOnly // Solo lectura
data nAnchoMarco // Ancho del marco que rodea la línea del cursor
data nClickDown init 0 hidden // Contador de clicks para la selección al click del mouse
data nCharLeft // Primer caracter visible en la pantalla
data nClrAtThis // Caracteres que indican color a partir de ahí hasta el final de la línea
data nClrBAtThis // Color de fondo de los comentarios a partir de este lugar (//, &&)
data nClrBBegin // Color de fondo de los comentarios señalados como principio de línea (*)
data nClrBComent // Color de fondo de los comentarios de inicio final ( /* - */ )
data nClrComent // Color del texto de los comentarios de inicio final ( /* - */ )
data nClrBNumber // Color de fondo de los numeros
data nClrBOperator // Color de fondo de los operadores
data nClrBString // Color de fondo de las cadenas de caracteres
data nClrBTok1 // Color del primer juego de palabras resaltadas
data nClrBTok2 // Color del segundo juego de palabras resaltadas
data nClrBTok3 // Color del tercer juego de palabras resaltadas
data nClrDbg // Color de la línea que indica donde se encuentra el depurador
data nClrEOF,nClrEOFBak // Color del EOF
data nInsert // Tiene que ver con el tipo de selección, no recuerdo para que
data nScrCol // Posición del cursor en el renglón de acuerdo a la ventana
data nVisChars // Número de caracteres visibles por línea
data nUndo init 1 // contador de las aplicaciones de undo y redo
data oIde // Referencia al objeto ide (programa principal)
data oTab // Objeto tabulador al que pertenece para la selección de pestañas
classdata nTipoSel init SELECCION_NORMAL // Tipo de selección al utilizar el mouse
classdata nTipoCpy // Tipo de selección al momento del copy-paste
CLASSDATA lRegistered AS LOGICAL
method new constructor
method addUndo
method copy
method default
method delBlock
method drawLine
method find
method delete
method dlgFind
method dlgFindOk
method dlgGoLine
message goUp method goPrevLine //inline ::goPrevLine( , lUndo )
message goDown method goNextLine //inline ::goNextLine( , lUndo )
method initiate
method insLine
method load( cTxtFile )
method nGetTokenColor
method nLine inline ::nLineTop + ::nLineRow
method paint
method gotFocus
method keyChar
method keyDown
method lButtonDown
method mouseMove
method lButtonUp //inline ::super:lButtonUp(), if( ::nBlkStartRow == 0, ::setSelectOff(), )
method goPrevLine
method goNextLine
method goPrevChar
method goNextChar
method goBeginLine
method goEndLine
method goNextWord( lSelect )
method goPrevWord( lSelect )
method toggleInsert
method reSize
method setFont( oFont ) inline ::super:setFont( oFont ), ::nVisChars := int( ( ::nWidth() - getSysMetrics( SM_CXVSCROLL ) ) / ::nChrWidth )
method setText
method getText
method goBottom
method goTop
method goLine
method goTo( nLine, nCol, lUndo ) inline ::goLine( nLine, nCol, lUndo )
method pageUp
method pageDown
method paste
method joinLine
method splitLine
method saveToFile
method reDo
method unDo
// Métodos mios
delegate aTxtFind to oIde // Arreglo con el historial de textos buscados
delegate aTxtRepl to oIde // Arreglo con el historial de textos de reemplazos
delegate hKeyDown to oIde // Configuración para teclas en keyDown
delegate lActDer to oIde // Permite mover el cursor más alla del último caracter de la línea
delegate lBackUp to oIde // automatic .BAK files
delegate lEspacios to oIde // Guardar espacios al final de la línea
delegate lFndCase to oIde // Indica si la busqueda difrencia entre mayusculas y minúsculas (.t.) o no (.f.)
delegate lTab to oIde // Indica si la tecla tabulador existe o se guarda como espacios
delegate nBanderas to oIde // Número máximo de banderas (::aBanderas)
delegate nDelLines to oIde // Max. number of deleted lines to store
method agredaPostEOF
method agregaVentana virtual
method ajustaComen hidden // Se usa para reajustar los comentarios de bloque cuando se borra el final (*/)
method bandera
method borraMarco() inline hideCaret( ::hWnd ), ::lMarco := .f., ::drawLine( ::nLine(), ::nLineRow + 1 ), ::drawLine( ::nLine() + 1, ::nLineRow + 2 ), ::lMarco := .t., showCaret( ::hWnd )
method cambioEditor
method cargaConfig
method cerrandoVentana
method cerrar inline ::oWnd:end()
method changeCase // Cambia el texto seleccionado entre mayúsculas y minúsculas
method cLinea( nLinea ) inline if( nLinea == nil, nLinea := ::nLine(), ), if( nLinea > len( ::aLines ), "", if( ::lTab, strTran( ::aLines[ nLinea, aLines_texto ], chr( VK_TAB ), space( ::nTabLen ) ), ::aLines[ nLinea, aLines_texto ] ) )
method clipBoard
method colocaMouse
method comentario
method creaVentana( hVentana ) inline ::cambioEditor( editorPrg(), "creaVentana", hVentana )
method ctrl_insert
method create inline ::nStyle := nOr( /*ES_AUTOHSCROLL, */WS_CHILD, WS_VISIBLE, WS_BORDER, WS_VSCROLL, WS_HSCROLL ), ::super:create()
method delBanderas
method drawSelect // Pinta texto seleccionado (si lo hay)
method edit_insert
method edit_return
method edit_tabulador
method endPaint inline ::super:endPaint(), ::getDC()
method findCursor
method goBeginChar
method goBeginWindow( lSelect )
method goEndWindow
method hScrAdjust
method iconoLinea // Devuelve el manejador del bitmap de la imágen mostrada al inicio de la línea
method llendaDespues
method lSelect inline ::hSelect <> nil .AND. ::hSelect:nTipo <> SELECCION_APAGADA
method marcador
method modificadaUp
method modificadaDown
method nBlkStart inline if( ::hSelect == nil, 0, 1 )
method nBlkEndRow inline if( ::hSelect == nil, 0, 1 )
method nChar inline ::nCharLeft + ::nLineCol
method nChrWidth inline ::getWidth( "B" )
method pageLeft
method pageRight
method pintaComen hidden // Se usa para encontrar el final de un comentario de bloque cuando se escribe el inicio (/*)
method pintaMarco() inline setTextColor( ::hDC, CLR_GRAY ), frameDot( ::hDC, ::nLineRow * ::nChrHeight, 1, ::nLineRow * ::nChrHeight + ::nChrHeight, ::nAnchoMarco )
method print
method rButtonDown
method refresh inline ::paint()
method repetidos( bAction ) inline if( ::nLastKey == bAction, ::nPressDown++, ( ::nPressDown := 1, ::nLastKey := bAction ) )
method scrollDown
method scrollUp
method selectCase // Dialogo para seleccionar mayúsculas o minúsculas
method selPalabra
method setFocus inline ::oWnd:setFocus(), ::super:setFocus()
method setMsgBar( cTxt ) inline ::oIde:oWnd:oBottom:oMsgBar:setText( cTxt )
method setSelectOff inline ::nInsert := SELECCION_APAGADA, ::setSelectOn( .f., SELECCION_APAGADA ), ::drawSelect()
method setSelectOn
method shift_delete
method showCoords inline ::oIde:oPos:setText( "L: " + lTrim( str( ::nLine() ) ) + " C: " + lTrim( str( ::nLineCol + 1 ) ) )
method tipoArchivo inline "texto"
endClass
Saludos
Quique
Quique
Re: Error con un programa de fivewin en una maquina virtual
Se que soy malo para aislar problemas, pero bueno, después de varias horas (si horas) aislando el problema, pro fin tengo un ejemplo con el cual se reproduce únicamente en la máquina virtual, porque en la máquina real no falla, y no tiene nada que ver con mi clase ni con tTxtEdit.
Se tienen que cumplir varias circunstancias, para reproducirlo:
1. Al abrirse la ventana dal click en la opción venta
2. Dar click en Utilerías\mensaje
con eso se bloquea el programa.
- Antes de abrir la ventana hija (punto 1) muestra el mensaje, para reproducirlo tiene que abrirse la ventana hija
- La ventana hija debe estar maximizada, si se quita lo maximizado mostrará el mensaje
- Si en el código se quita la opción 2007 al menú funciona sin problema, no se bloquea
- Si se cambia la opción Mensaje al primer nivel también funciona.
Se tienen que cumplir varias circunstancias, para reproducirlo:
1. Al abrirse la ventana dal click en la opción venta
2. Dar click en Utilerías\mensaje
con eso se bloquea el programa.
- Antes de abrir la ventana hija (punto 1) muestra el mensaje, para reproducirlo tiene que abrirse la ventana hija
- La ventana hija debe estar maximizada, si se quita lo maximizado mostrará el mensaje
- Si en el código se quita la opción 2007 al menú funciona sin problema, no se bloquea
- Si se cambia la opción Mensaje al primer nivel también funciona.
Code: Select all | Expand
#include "FiveWin.ch"
function main()
local oMenu, oWnd
menu oMenu 2007
menuItem "Ventana" action ventana( oWnd )
menuItem "Utilerías"
menu
menuItem "Mensaje" action msgInfo( "Hola" )
endMenu
endMenu
define window oWnd mdi menu oMenu
activate window oWnd
return nil
//-----------------------------------------------------------------------------------------------------------------------------//
function ventana( oWndMain )
local oWnd
define window oWnd of oWndMain mdichild
activate window oWnd maximized
return nil
Saludos
Quique
Quique
- Antonio Linares
- Site Admin
- Posts: 42521
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 31 times
- Been thanked: 76 times
- Contact:
Re: Error con un programa de fivewin en una maquina virtual
Quique,
Probado en XP virtualizado, funciona. La versión que uso de VirtualBox es 4.2.2 r811494
Que versión de VirtualBox usas ?
Probado en XP virtualizado, funciona. La versión que uso de VirtualBox es 4.2.2 r811494
Que versión de VirtualBox usas ?
- Antonio Linares
- Site Admin
- Posts: 42521
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 31 times
- Been thanked: 76 times
- Contact:
Re: Error con un programa de fivewin en una maquina virtual
Quique,
En Windows 7 tampoco falla. Será tu versión de VirtualBox ?
![Image](http://img844.imageshack.us/img844/2871/capturejc.jpg)
En Windows 7 tampoco falla. Será tu versión de VirtualBox ?
![Image](http://img844.imageshack.us/img844/2871/capturejc.jpg)
Re: Error con un programa de fivewin en una maquina virtual
4.2.10 r.84104 con Guest Additions y Windows 7 Professional con Service Pack 1, y eso que comento fue el problema, con mi programa comprobé quitando el maximizado (cosa que no dejé porque en la práctica no le puedo decir a los usuarios que si usan maquina virtual no maximicen las ventanas) y terminé quitando el 2007 al menú.
Saludos
Quique
Quique