PDA

Ver la Versión Completa : [Componente] Menú con Imágenes ¿?¿?


Josber
24 de marzo de 2016, 17:00
¿Alguien sabe si se pueden colocar imágenes a un menú? o ¿conoce algún ocx libre que funcione en PWC?

Muchas gracias

Un saludo.-

Kuk
24 de marzo de 2016, 17:36
Josber, seguramente se pueda, pero con WinAPI así que habrá que armar un pifostio. Creo que es mucho más facil un OCX.

Mira a ver qué tal este: Ocx para menues Xp - Hook menu (http://www.recursosvisualbasic.com.ar/htm/ocx-componentes-activex-dll/31-ocx-menu-xp-hook-menu.htm)

Josber
24 de marzo de 2016, 19:30
Gracias Kuk, probaré a ver si funciona en W7 x64, porque los recursos de esa página son muy antiguos y algunos no funcionaban a partir de Win Xp.

De esa misma página me bajé hace tiempo el menú que tienen que es como la "cinta" de Office 2007, pero no es un ocx, si no el proyecto completo, y no conseguí hacer un ocx con el VB6 :perdon:, así que lo dejé de momento.

Un saludo.-

Kuk
25 de marzo de 2016, 08:48
Josber, luego también está el famoso Codejock... :silba:

Josber
25 de marzo de 2016, 21:03
Al final voy a probar con de DBITech, si no me da muchos problemas, porque en las pruebas que estoy haciendo, ya me ha tirado varias veces del programa ...

Es un poco costoso de hacer, pero trae un "constructor" de menús, que una vez que le has pillado el tino no está mal.

Gracias y un saludo.-

Roger
26 de marzo de 2016, 16:03
Josber
Si es posible puedes poner los codigos que elaboras el menu con el DBITech, tambien trabajos con estos ocx y seria de utilidad.
:ojo1:

Josber
26 de marzo de 2016, 21:21
Josber
Si es posible puedes poner los codigos que elaboras el menu con el DBITech, tambien trabajos con estos ocx y seria de utilidad.
:ojo1:

Pues en cuanto lo tenga un poco más claro los pongo Roger, que ahora me están dando un error aleatorio y no sé a que es debido, aunque parece un control bastante sencillo.

Un saludo.

Hrmcobol
27 de marzo de 2016, 01:50
Hola camaradas, yo uso "ToolBar" de Dbi, no soy un experto, pero he podido poner imágenes y armar un menú, Les Adjunto un ppj y un exe, estan en pw9, sino logran abrirlos me avisan y lo genero en pw5, pongan el error que les da y lo vemos,
Saludos

Roger
27 de marzo de 2016, 05:56
Hrmcobol tengo instalado la versión Dbi-Tech Component Toolbox Ocx v.6.01
¿Cual es el ocx que usas? porque me envia error en el activex.
:eek:

Hrmcobol
27 de marzo de 2016, 11:54
Hola Roger, yo tengo Dbi 5.0

Josber
27 de marzo de 2016, 12:16
Hrmcobol, da error al abrir el proyecto y el exe de que el componente "toolbar" no está instalado, ¿puedes incluir el ocx en el fichero zip?

Gracias y un saludo.-

Hrmcobol
27 de marzo de 2016, 14:29
Aqui Va

Kuk
27 de marzo de 2016, 14:46
Hrmcobol, a mi también me dice que no está registrado el OCX, debe ser una versión diferente la que usas.

Josber
28 de marzo de 2016, 11:58
Registrando el ocx que ha subido Hrmcobol, se puede abrir el proyecto, aunque sólo es una muestra de un menú, no hay creado ningún evento asociado a los botones.

Por cierto Hrm, el archivo de ayuda que has subido junto al ocx, no se puede abrir, ¿puedes volver a subirlo para darle un vistazo?

Gracias

Un saludo.-

Roger
28 de marzo de 2016, 19:11
Hola amigos
Probe con la versión Dbi-Tech Component Toolbox Ocx v.6.01 siguiendo el ejemplo de Hrmcobol y funciona solo que no se donde se pone los comandos
para llamar al sub-programa.

Si necesitas abrir un archivo de ayuda de Windows con extensión .hlp en Windows Vista o Windows 7, no podrás abrirlo, ya que estas versiones de Windows no soportan nativamente este tipo de archivos (Winhelp no viene instalado).
Existen parches ejemplo Descarga Windows8.1-KB917607-x64 si estas en 64 bits o x 86 a 32 bits este es un parche de windows si tienes windows 10 es imposible porque no es compatible ya hice muchas pruebas.
:nocreo:

Josber
28 de marzo de 2016, 20:08
Roger, ya lo he solucionado, he encontrado el archivo y ya lo he leido, gracias.

Por otro lado, es muy sencillo de utilizar, en el evento "ItemClick", es donde has de poner tu código, te paso el ejemplo de la prueba que estoy haciendo


ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
LINKAGE SECTION.
01 POW-ARG-NITEM PIC S9(4) COMP-5.
01 POW-ARG-BARROW PIC S9(4) COMP-5.
PROCEDURE DIVISION USING POW-ARG-NITEM POW-ARG-BARROW.

EVALUATE POW-ARG-NITEM

WHEN 2

MOVE 0 TO AHIVA5
INVOKE POW-SELF "CallForm" USING "F-CON-TRANSPORTISTA" "M-TRANSPORTISTA"
MOVE AHIVA5 TO "Text" OF CAMPO1
IF AHIVA5 NOT = 0
MOVE AHIVA5 TO TRACOD

READ TRANSPORTISTA KEY IS XTCOD
INVALID KEY
INVOKE POW-SELF "Alarm"
ADD POW-DMICONERROR POW-DMOK GIVING ESTILO
INVOKE POW-SELF "DisplayMessage"
USING "No existe el Registro, quizás haya sido borrado desde otro puesto ..."
WS-ATENCION
ESTILO
END-INVOKE
MOVE SPACES TO WSCAPTION
MOVE TRACOD TO TRA-EDI
STRING "Transportistas - Nuevo Registro: "
TRA-EDI DELIMITED BY SIZE INTO WSCAPTION
END-STRING
MOVE WSCAPTION TO "Caption" OF POW-SELF
CALL "VACIAR"
CALL "INHABILITAR"
INVOKE CAMPO1 "SetFocus"
EXIT PROGRAM
NOT INVALID KEY
CALL "HABILITAR"
CALL "EXISTE"
INVOKE CAMPO1 "SetFocus"
EXIT PROGRAM
END-READ
ELSE
MOVE SPACES TO WSCAPTION
MOVE TRACOD TO TRA-EDI
STRING "Transportistas - Nuevo Registro: "
TRA-EDI DELIMITED BY SIZE INTO WSCAPTION
END-STRING
MOVE WSCAPTION TO "Caption" OF POW-SELF
CALL "VACIAR"
CALL "INHABILITAR"
INVOKE CAMPO1 "SetFocus"
EXIT PROGRAM
END-IF

WHEN 4

INVOKE POW-SELF "OpenForm" USING "FORM-ACERCA" "M-ACERCA"

WHEN 6

CALL "PARASALIR"

WHEN 8

CALL "GRABAR"

WHEN 9

INVOKE POW-SELF "Alarm"
ADD POW-DMICONQUESTION POW-DMYESNO POW-DMDEFBUTTON2 GIVING ESTILO
INVOKE POW-SELF "DisplayMessage"
USING "¿Cancelar?, Perderá la información no guardada ..."
WS-ATENCION
ESTILO
RETURNING RETORNO
END-INVOKE

IF RETORNO = POW-DMRNO
EXIT PROGRAM
END-IF

CALL "INHABILITAR"
CALL "VACIAR"
INVOKE CAMPO1 "SetFocus"

WHEN 10

MOVE 0 TO AHIVA5
INVOKE POW-SELF "CallForm" USING "F-CON-TRANSPORTISTA" "M-TRANSPORTISTA"
MOVE AHIVA5 TO "Text" OF CAMPO1
IF AHIVA5 NOT = 0
MOVE AHIVA5 TO TRACOD

READ TRANSPORTISTA KEY IS XTCOD
INVALID KEY
INVOKE POW-SELF "Alarm"
ADD POW-DMICONERROR POW-DMOK GIVING ESTILO
INVOKE POW-SELF "DisplayMessage"
USING "No existe el Registro, quizás haya sido borrado desde otro puesto ..."
WS-ATENCION
ESTILO
END-INVOKE
MOVE SPACES TO WSCAPTION
MOVE TRACOD TO TRA-EDI
STRING "Transportistas - Nuevo Registro: "
TRA-EDI DELIMITED BY SIZE INTO WSCAPTION
END-STRING
MOVE WSCAPTION TO "Caption" OF POW-SELF
CALL "VACIAR"
CALL "INHABILITAR"
INVOKE CAMPO1 "SetFocus"
EXIT PROGRAM
NOT INVALID KEY
CALL "HABILITAR"
CALL "EXISTE"
INVOKE CAMPO1 "SetFocus"
EXIT PROGRAM
END-READ
ELSE
MOVE SPACES TO WSCAPTION
MOVE TRACOD TO TRA-EDI
STRING "Transportistas - Nuevo Registro: "
TRA-EDI DELIMITED BY SIZE INTO WSCAPTION
END-STRING
MOVE WSCAPTION TO "Caption" OF POW-SELF
CALL "VACIAR"
CALL "INHABILITAR"
INVOKE CAMPO1 "SetFocus"
EXIT PROGRAM
END-IF

WHEN 11

CALL "BORRAR"

WHEN 13

CALL "IMPRIMIR"

WHEN 14

INVOKE POW-SELF "CallForm" USING "F-LIS-TRANSPORTISTA" "M-TRANSPORTISTA"

WHEN OTHER

EXIT PROGRAM

END-EVALUATE.


Ten en cuenta, que el menú empieza a numerear por 1 desde el primer elemento, en la imágen que adjunto, el primer elemento sería la opción "Menú", y que los separadores cuentan como un elemento en sí, por lo que has de tenerlo en cuenta a la hora de programar el EVALUATE.

Para poder dehabilitar un elemento del menú, usa, por ejemplo:

MOVE 0 TO "ItemEnabled"(08) OF ctToolBar1.
MOVE 0 TO "ItemEnabled"(09) OF ctToolBar1.
MOVE 0 TO "ItemEnabled"(11) OF ctToolBar1.
MOVE 0 TO "ItemEnabled"(14) OF ctToolBar1.


Es decir, el número entre paréntesis es el elemento a inhabilitar.

Si tienes más dudas, indícalo.

Un saludo.-

Hrmcobol
28 de marzo de 2016, 21:10
Hola camaradas, yo uso el ItemCick
Saludos