Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[Cramel] Componentes para Ventanas | 5 de Julio del 2017

  • 0 Respuestas
  • 2587 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado BlackBlex

  • *
  • Underc0der
  • Mensajes: 49
  • Actividad:
    0%
  • Reputación 4
    • Ver Perfil
  • Skype: blackblex
  • Twitter: blackblex
« en: Abril 10, 2017, 04:25:47 pm »
Les traigo este código el cual agrega un set de componentes que complementará a su ventana.


Información
  • Compatible con Cramel: 2.0.0.362
  • Librerías requeridas: MSVBVM60.cml


Ese set contiene:
  • Botones
    • Radio
    • CheckBox
    • GroupBox
  • Etiquetas
  • Caja de texto
  • Barra de progreso
  • ComboBox
  • ListView

Todos los componentes tienen los siguientes métodos:
  • cambiarColorFondo(color:Entero) - Cambiamos el color del fondo del componente
  • cambiarColorLetra(color:Entero) - Cambiamos el color de la letra del componente
  • cambiarTexto(nuevo:Cadena) - Cambiamos el texto del componente
  • cambiarTamaño(ancho, alto:Entero) - Cambiamos el tamaño del componente
  • cambiarPosicion(x, y:Entero) - Cambiamos la posición del componente

Todos los componentes tienen las siguientes propiedades:
  • Tipo - Establece o devuelve el tipo de componente | Por lo general su uso es para devolver el tipo, ya que, ya está establecido el tipo de componente, a no ser que se cree uno nuevo.
  • Texto - Establece o devuelve el texto que contiene el componente
  • ColorLetra - Devuelve el color de letra que tiene el componente
  • ColorFondo - Devuelve el color de fondo que tiene el componente
  • hWnd - Establece o devuelve el puntero del componente
  • Padre - Establece o devuelve el puntero padre del componente | Su uso se aplica cuando quieres relacionar o agregar componentes a tu ventana
  • DC - Establece o devuelve el contexto de dispositivo del componente
  • Enfocar - Establece o devuelve si el componente gana Focus
  • Centrar - Establece o devuelve si la ventana debe estar centrada en la pantalla
  • Deshabilitado - Establece o devuelve si el componente estará deshabilidado
  • Visible - Establece o devuelve si el componente estará visible
  • Alto - Establece o devuelve el alto del componente
  • Ancho - Establece o devuelve el ancho del componente
  • PosX - Establece o devuelve la posición X del componente
  • PosY - Establece o devuelve la posición Y del componente

  • Se puede poner un icono, solo basta con poner el archivo "icon.ico" en el directorio de tu proyecto.

Aquí un ejemplo de una ventana con todos los componentes, y una segunda ventana.




Código: Text
  1. Importar "Cramel.cml"
  2. Importar "MSVBVM60\MSVBVM60.cml"
  3. Importar "Interfaz\Interfaz.cml"
  4.  
  5. Var frame, frameNuevo:CMLframe
  6. Var botonExaminar, botonNuevo:CMLBotón
  7. Var checkboxReemplazar:CMLCheckbox
  8. Var grupoReemplazar:CMLGroupbox
  9. Var radioReemplazar, radioNoReemplazar:CMLRadiobotón
  10. Var etiquetaElección, etiquetaProgreso, etiquetaNuevo:CMLEtiqueta
  11. Var comboboxOpciones:CMLCombobox
  12. Var barraProgresoTest, barraProgresoMarquee, barraProgresoVertical:CMLBarraprogreso
  13. Var cajaTextoPrueba, cajaTextoContra:CMLCajatexto
  14. Var listViewTest:CMLListview
  15.  
  16. Proc alertaMensaje(hWnd:Entero)
  17.     Mensaje("Holaa " + EntCad(hWnd))
  18. FinProc
  19.  
  20. Proc alertaBotonExaminar(hWnd:Entero,Botón:Byte,Presionado:Booleano,X,Y:Entero)
  21.     Seleccionar Botón
  22.         Caso BOTON_IZQUIERDO
  23.             Seleccionar Presionado
  24.                 Caso Falso
  25.                     Mensaje("Botón izquierdo presionado")
  26.                     Mensaje("El checkbox esta: " + EntCad(checkboxReemplazar.estaSeleccionado) )
  27.             FinSeleccionar
  28.         Caso BOTON_DERECHO
  29.             Seleccionar Presionado
  30.                 Caso Falso
  31.                     Mensaje("Botón derecho presionado")
  32.                     Mensaje(cajaTextoPrueba.cTexto)
  33.                     cajaTextoPrueba.Limite = 20
  34.                     cajaTextoPrueba.agrTexto = " agregado"
  35.             FinSeleccionar
  36.         Caso BOTON_CENTRAL
  37.             Seleccionar Presionado
  38.                 Caso Falso
  39.                     Mensaje("Botón central presionado")
  40.                     Mensaje("Carácter: " + Carácter(cajaTextoContra.ContraseñaCaracter))
  41.             FinSeleccionar
  42.     FinSeleccionar
  43. FinProc
  44.  
  45. Proc alertaComboBox(hWnd:Entero, Referencia Item:GUI_COMBOBOX_ITEM_INFO)
  46.     Mensaje("Item #" + EntCad(Item.Posición) + " seleccionado: " + Item.Item)
  47. FinProc
  48.  
  49. Proc listViewTestEventClic(hWnd:Entero,Botón:Byte,Presionado:Booleano,X,Y:Entero,Referencia ItemInfo:GUI_LISTVIEW_ITEM_INFO)
  50.     Seleccionar Botón
  51.         Caso BOTON_DERECHO, BOTON_IZQUIERDO
  52.             Seleccionar Presionado
  53.                 Caso Verdad
  54.                     Mensaje("Posición: " + EntCad(ItemInfo.Columna) + CRLF + "Item: " + EntCad(ItemInfo.Item))
  55.             FinSeleccionar
  56.     FinSeleccionar
  57. FinProc
  58.  
  59. Crear frame
  60. Crear frameNuevo
  61. Crear botonExaminar
  62. Crear botonNuevo
  63. Crear grupoReemplazar
  64. Crear checkboxReemplazar
  65. Crear radioReemplazar
  66. Crear radioNoReemplazar
  67. Crear etiquetaElección
  68. Crear etiquetaProgreso
  69. Crear etiquetaNuevo
  70. Crear comboboxOpciones
  71. Crear barraProgresoTest
  72. Crear barraProgresoMarquee
  73. Crear barraProgresoVertical
  74. Crear cajaTextoPrueba
  75. Crear cajaTextoContra
  76. Crear listViewTest
  77.  
  78.     frame.Texto = "CMLFrame clase"
  79.     frame.Ancho = 400
  80.     frame.Alto = 400
  81.     frame.Padre = 0
  82.     frame.Centrar = 1
  83.     'frame.eventos.Cargar@ = alertaMensaje@
  84.     frame.construir(WS_OVERLAPPED+WS_CAPTION+WS_SYSMENU)
  85.  
  86.     frameNuevo.Texto = "2do Frame"
  87.     frameNuevo.Ancho = 550
  88.     frameNuevo.Alto = 400
  89.     frameNuevo.Padre = 0
  90.     frameNuevo.Centrar = Verdad
  91.     frameNuevo.construir(WS_OVERLAPPED+WS_CAPTION+WS_SYSMENU)
  92.  
  93.     etiquetaElección.Texto = "\x191Qué quieres hacer?"
  94.     etiquetaElección.PosX  = 10
  95.     etiquetaElección.PosY  = 10
  96.     etiquetaElección.Ancho = 150
  97.     etiquetaElección.Alto  = 30
  98.     etiquetaElección.Padre = frame.hWnd
  99.     etiquetaElección.construir()
  100.  
  101.     etiquetaNuevo.Texto = "Hola :D"
  102.     etiquetaNuevo.PosX  = 10
  103.     etiquetaNuevo.PosY  = 10
  104.     etiquetaNuevo.Ancho = frameNuevo.Ancho - 30
  105.     etiquetaNuevo.Alto  = 20
  106.     etiquetaNuevo.Padre = frameNuevo.hWnd
  107.     etiquetaNuevo.fuente.Nombre = "Roboto light"
  108.     etiquetaNuevo.fuente.Tamaño = 14
  109.     etiquetaNuevo.fuente.Bold = Verdad
  110.     etiquetaNuevo.construir(ES_CENTER)
  111.  
  112.     listViewTest.PosX  = 10
  113.     listViewTest.PosY  = (etiquetaNuevo.PosY + etiquetaNuevo.Alto) + 5
  114.     listViewTest.Ancho = frameNuevo.Ancho - 30
  115.     listViewTest.Alto  = (frameNuevo.Alto - listViewTest.PosY) - 50
  116.     listViewTest.Padre = frameNuevo.hWnd
  117.     listViewTest.fuente.Nombre = "Arial"
  118.     listViewTest.fuente.Tamaño = 11
  119.     listViewTest.eventos.ListView.Clic@ = listViewTestEventClic@
  120.     listViewTest.construir()
  121.  
  122.     Var listColumnas[]:INFO_COLUMNA
  123.     ReDim listColumnas, 5
  124.  
  125.     listColumnas[0].Indice   = 0
  126.     listColumnas[0].Ancho    = (listViewTest.Ancho/5)
  127.     listColumnas[0].Posición = LVCFMT_LEFT
  128.     listColumnas[0].Texto    = "Nombre"
  129.  
  130.     listColumnas[1].Indice   = 1
  131.     listColumnas[1].Ancho    = (listViewTest.Ancho/5)
  132.     listColumnas[1].Posición = LVCFMT_CENTER
  133.     listColumnas[1].Texto    = "Dirección IP"
  134.  
  135.     listColumnas[2].Indice   = 2
  136.     listColumnas[2].Ancho    = (listViewTest.Ancho/5)
  137.     listColumnas[2].Posición = LVCFMT_CENTER
  138.     listColumnas[2].Texto    = "Usuario@Host"
  139.  
  140.     listColumnas[3].Indice   = 3
  141.     listColumnas[3].Ancho    = (listViewTest.Ancho/5)
  142.     listColumnas[3].Posición = LVCFMT_CENTER
  143.     listColumnas[3].Texto    = "SO"
  144.  
  145.     listColumnas[4].Indice   = 4
  146.     listColumnas[4].Ancho    = (listViewTest.Ancho/5)
  147.     listColumnas[4].Posición = LVCFMT_CENTER
  148.     listColumnas[4].Texto    = "País@Idioma"
  149.  
  150.     listViewTest.insertarColumnas(listColumnas)
  151.  
  152.     Var listItems:INFO_ITEM
  153.     ReDim listItems.Texto, 5
  154.  
  155.     listItems.Texto[0] = "Test"
  156.     listItems.Texto[1] = "Test1"
  157.     listItems.Texto[2] = "Test2"
  158.     listItems.Texto[3] = "Test3"
  159.     listItems.Texto[4] = "Test4"
  160.     listItems.Indice   = 0
  161.  
  162.     Var listItems2:INFO_ITEM
  163.     ReDim listItems2.Texto, 5
  164.  
  165.     listItems2.Texto[0] = "Test2"
  166.     listItems2.Texto[1] = "Test21"
  167.     listItems2.Texto[2] = "Test22"
  168.     listItems2.Texto[3] = "Test23"
  169.     listItems2.Texto[4] = "Test24"
  170.     listItems2.Indice   = 1
  171.  
  172.     listViewTest.insertarItem(listItems)
  173.     listViewTest.insertarItem(listItems2)
  174.  
  175.     comboboxOpciones.PosX = 170
  176.     comboboxOpciones.PosY = 10
  177.     comboboxOpciones.Ancho = 150
  178.     comboboxOpciones.Alto = 20
  179.     comboboxOpciones.Padre = frame.hWnd
  180.     comboboxOpciones.eventos.ComboBox.Selección@ = alertaComboBox@
  181.     comboboxOpciones.construir(CBS_DROPDOWNLIST)
  182.  
  183.     comboboxOpciones.agregarItem("Hola")
  184.     comboboxOpciones.agregarItem("\x191Como estas?")
  185.     comboboxOpciones.agregarItem("Bien")
  186.     comboboxOpciones.agregarItem("Genial")
  187.     comboboxOpciones.agregarItem("y tu??")
  188.     comboboxOpciones.agregarItem("Bien, igual")
  189.     comboboxOpciones.agregarItem("Que padre")
  190.  
  191.     botonExaminar.Texto = "Examinar"
  192.     botonExaminar.PosX  = 10
  193.     botonExaminar.PosY  = 30
  194.     botonExaminar.Ancho = 100
  195.     botonExaminar.Alto  = 50
  196.     botonExaminar.Padre = frame.hWnd
  197.     botonExaminar.eventos.Mouse.Clic@ = alertaBotonExaminar@
  198.     botonExaminar.construir()
  199.  
  200.     botonNuevo.Texto = "Nueva ventana"
  201.     botonNuevo.PosX  = 10
  202.     botonNuevo.PosY  = 300
  203.     botonNuevo.Ancho = 100
  204.     botonNuevo.Alto  = 50
  205.     botonNuevo.Padre = frame.hWnd
  206.     botonNuevo.eventos.Mouse.Clic@ = nuevaVentana@
  207.     botonNuevo.construir()
  208.  
  209.     checkboxReemplazar.Texto = "Reemplazar archivo"
  210.     checkboxReemplazar.PosX  = 10
  211.     checkboxReemplazar.PosY  = 90
  212.     checkboxReemplazar.Ancho = 200
  213.     checkboxReemplazar.Alto  = 30
  214.     checkboxReemplazar.Padre = frame.hWnd
  215.     checkboxReemplazar.Deshabilitado = Verdad
  216.     checkboxReemplazar.construir()
  217.  
  218.     grupoReemplazar.Texto = "Opciones"
  219.     grupoReemplazar.PosX  = 10
  220.     grupoReemplazar.PosY  = 130
  221.     grupoReemplazar.Ancho = 270
  222.     grupoReemplazar.Alto  = 50
  223.     grupoReemplazar.Padre = frame.hWnd
  224.     grupoReemplazar.construir()
  225.  
  226.         radioReemplazar.Texto = "Reemplazar archivo"
  227.         radioReemplazar.PosX  = 20
  228.         radioReemplazar.PosY  = 145
  229.         radioReemplazar.Ancho = 110
  230.         radioReemplazar.Alto  = 30
  231.         radioReemplazar.Padre = frame.hWnd
  232.         radioReemplazar.construir()
  233.  
  234.         radioNoReemplazar.Texto = "No reemplazar archivo"
  235.         radioNoReemplazar.PosX  = 140
  236.         radioNoReemplazar.PosY  = 145
  237.         radioNoReemplazar.Ancho = 130
  238.         radioNoReemplazar.Alto  = 30
  239.         radioNoReemplazar.Padre = frame.hWnd
  240.         radioNoReemplazar.construir()
  241.  
  242.     grupoReemplazar.cerrar()
  243.  
  244.     barraProgresoTest.PosX  = 10
  245.     barraProgresoTest.PosY  = 190
  246.     barraProgresoTest.Ancho = 150
  247.     barraProgresoTest.Alto  = 30
  248.     barraProgresoTest.Padre = frame.hWnd
  249.     barraProgresoTest.construir()
  250.     barraProgresoTest.empezar(ProgresoBarra@)
  251.    
  252.     etiquetaProgreso.Texto = "0 %"
  253.     etiquetaProgreso.PosX  = 10
  254.     etiquetaProgreso.PosY  = 230
  255.     etiquetaProgreso.Ancho = 150
  256.     etiquetaProgreso.Alto  = 30
  257.     etiquetaProgreso.Padre = frame.hWnd
  258.     etiquetaProgreso.construir(SS_CENTER)
  259.  
  260.     barraProgresoMarquee.PosX  = 170
  261.     barraProgresoMarquee.PosY  = 190
  262.     barraProgresoMarquee.Ancho = 150
  263.     barraProgresoMarquee.Alto  = 30
  264.     barraProgresoMarquee.Padre = frame.hWnd
  265.     barraProgresoMarquee.construir(PBS_MARQUEE)
  266.     barraProgresoMarquee.Marquee = 20
  267.  
  268.     barraProgresoVertical.PosX  = 330
  269.     barraProgresoVertical.PosY  = 70
  270.     barraProgresoVertical.Ancho = 30
  271.     barraProgresoVertical.Alto  = 150
  272.     barraProgresoVertical.Padre = frame.hWnd
  273.     barraProgresoVertical.construir(PBS_VERTICAL)
  274.     barraProgresoVertical.empezar(ProgresoBarraVertical@)
  275.  
  276.     cajaTextoPrueba.Texto = "Holaa"
  277.     cajaTextoPrueba.PosX  = 10
  278.     cajaTextoPrueba.PosY  = 270
  279.     cajaTextoPrueba.Ancho = 150
  280.     cajaTextoPrueba.Alto  = 20
  281.     cajaTextoPrueba.Padre = frame.hWnd
  282.     cajaTextoPrueba.construir()
  283.  
  284.     cajaTextoPrueba.Limite = 10
  285.  
  286.     cajaTextoContra.Texto = "Password"
  287.     cajaTextoContra.PosX  = 170
  288.     cajaTextoContra.PosY  = 270
  289.     cajaTextoContra.Ancho = 150
  290.     cajaTextoContra.Alto  = 20
  291.     cajaTextoContra.Padre = frame.hWnd
  292.     cajaTextoContra.construir(ES_PASSWORD)
  293.     cajaTextoContra.ContraseñaCaracter = ASCII("+")
  294.  
  295.     frame.mostrar()
  296.     'Pausar(2500)
  297.     'Mensaje("Cambio")
  298.     'etiquetaElección.cambiarTexto("Groo")
  299.     frame.correr()
  300.  
  301. Proc nuevaVentana NoResultado
  302.     frameNuevo.mostrar()
  303.     frameNuevo.correr()
  304. FinProc
  305.  
  306. Proc ProgresoBarra():Entero NoResultado
  307.     Var rango:PBRANGE
  308.     Var i:Entero
  309.     rango = barraProgresoTest.Rango
  310.     Mientras i <= rango.iHigh
  311.         barraProgresoTest.Progreso = i
  312.         'etiquetaProgreso.cambiarTexto(EntCad(barraProgresoTest.Progreso) + " %")
  313.         Pausar(50)
  314.         i = i + 1
  315.     FinMientras
  316.     barraProgresoMarquee.MarqueeStop
  317. FinProc
  318.  
  319. Proc ProgresoBarraVertical():Entero NoResultado
  320.     Var rango:PBRANGE
  321.     Var i:Entero
  322.     rango = barraProgresoVertical.Rango
  323.     Mientras i <= rango.iHigh
  324.         barraProgresoVertical.Progreso = i
  325.         Pausar(150)
  326.         i = i + 1
  327.     FinMientras
  328. FinProc
  329.  
  330. Destruir listViewTest
  331. Destruir cajaTextoContra
  332. Destruir cajaTextoPrueba
  333. Destruir barraProgresoVertical
  334. Destruir barraProgresoMarquee
  335. Destruir barraProgresoTest
  336. Destruir comboboxOpciones
  337. Destruir etiquetaNuevo
  338. Destruir etiquetaProgreso
  339. Destruir etiquetaElección
  340. Destruir radioNoReemplazar
  341. Destruir radioReemplazar
  342. Destruir checkboxReemplazar
  343. Destruir grupoReemplazar
  344. Destruir botonNuevo
  345. Destruir botonExaminar
  346. Destruir frameNuevo
  347. Destruir frame

OJO:
El proyecto debe tener un archivo .manifest para su correcto funcionamiento por ende crean un archivo con: "el nombre de su ejecutable" seguido de ".exe.manifest"

Y ponen esto de contenido:
Código: Text
  1. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  2.     <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  3.         <assemblyIdentity
  4.             version="1.0.0.0"
  5.             processorArchitecture="X86"
  6.             name="CramelFrame"
  7.             type="win32"
  8.         />
  9.         <description></description>
  10.         <dependency>
  11.         <dependentAssembly>
  12.         <assemblyIdentity
  13.             type="win32"
  14.             name="Microsoft.Windows.Common-Controls"
  15.             version="6.0.0.0"
  16.             processorArchitecture="X86"
  17.             publicKeyToken="6595b64144ccf1df"
  18.             language="*"
  19.         />
  20.         </dependentAssembly>
  21.     </dependency>
  22. </assembly>


Descarga de los componentes


Descarga -> Descargan el archivo, lo descomprimen y lo pegan en el directorio de las Libs

1 de julio del 2017
  • Se paso a crear una clase para cada componente, como para la ventana
  • Corregido error en los eventos del botón
  • Actualizada para la versión 2.0.362 - No funciona en anteriores
5 de julio del 2017
  • Se agregó un nuevo componente, el Listview
  • Se corrigió errores en la clase Información
  • Errores en el componente CMLFrame arreglado

Cualquier sugerencia, o error, comenten.

Si quieren que haga algún componente personalizado para Cramel comenten.
« Última modificación: Julio 05, 2017, 09:22:50 pm por BlackBlex »

 

¿Te gustó el post? COMPARTILO!



Curso Online gratis "Programación para niños"

Iniciado por graphixx

Respuestas: 0
Vistas: 1727
Último mensaje Enero 13, 2016, 04:13:58 am
por graphixx
Reto Indicar un numero y crear formula para calcular edad de underc0de

Iniciado por Oggy

Respuestas: 5
Vistas: 3096
Último mensaje Octubre 23, 2012, 07:37:39 pm
por Oggy
[Datos] Funciones para Haskell internas - JaAViEr

Iniciado por JaAViEr

Respuestas: 0
Vistas: 1810
Último mensaje Julio 17, 2011, 06:37:29 am
por JaAViEr
App para crear diagramas de flujo

Iniciado por wayver

Respuestas: 6
Vistas: 6535
Último mensaje Diciembre 08, 2012, 05:51:22 am
por Only
Programacion para iOS y Android - Lista

Iniciado por FrostBite

Respuestas: 0
Vistas: 1822
Último mensaje Noviembre 30, 2011, 07:22:47 pm
por FrostBite