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
  • 3620 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.construir(WS_OVERLAPPED+WS_CAPTION+WS_SYSMENU)
  84.  
  85.     frameNuevo.Texto = "2do Frame"
  86.     frameNuevo.Ancho = 550
  87.     frameNuevo.Alto = 400
  88.     frameNuevo.Padre = 0
  89.     frameNuevo.Centrar = Verdad
  90.     frameNuevo.construir(WS_OVERLAPPED+WS_CAPTION+WS_SYSMENU)
  91.  
  92.     etiquetaElección.Texto = "\x191Qué quieres hacer?"
  93.     etiquetaElección.PosX  = 10
  94.     etiquetaElección.PosY  = 10
  95.     etiquetaElección.Ancho = 150
  96.     etiquetaElección.Alto  = 30
  97.     etiquetaElección.Padre = frame.hWnd
  98.     etiquetaElección.construir()
  99.  
  100.     etiquetaNuevo.Texto = "Hola :D"
  101.     etiquetaNuevo.PosX  = 10
  102.     etiquetaNuevo.PosY  = 10
  103.     etiquetaNuevo.Ancho = frameNuevo.Ancho - 30
  104.     etiquetaNuevo.Alto  = 20
  105.     etiquetaNuevo.Padre = frameNuevo.hWnd
  106.     etiquetaNuevo.fuente.Nombre = "Roboto light"
  107.     etiquetaNuevo.fuente.Tamaño = 14
  108.     etiquetaNuevo.fuente.Bold = Verdad
  109.     etiquetaNuevo.construir(ES_CENTER)
  110.  
  111.     listViewTest.PosX  = 10
  112.     listViewTest.PosY  = (etiquetaNuevo.PosY + etiquetaNuevo.Alto) + 5
  113.     listViewTest.Ancho = frameNuevo.Ancho - 30
  114.     listViewTest.Alto  = (frameNuevo.Alto - listViewTest.PosY) - 50
  115.     listViewTest.Padre = frameNuevo.hWnd
  116.     listViewTest.fuente.Nombre = "Arial"
  117.     listViewTest.fuente.Tamaño = 11
  118.     listViewTest.construir()
  119.  
  120.     Var listColumnas[]:INFO_COLUMNA
  121.     ReDim listColumnas, 5
  122.  
  123.     listColumnas[0].Indice   = 0
  124.     listColumnas[0].Ancho    = (listViewTest.Ancho/5)
  125.     listColumnas[0].Posición = LVCFMT_LEFT
  126.     listColumnas[0].Texto    = "Nombre"
  127.  
  128.     listColumnas[1].Indice   = 1
  129.     listColumnas[1].Ancho    = (listViewTest.Ancho/5)
  130.     listColumnas[1].Posición = LVCFMT_CENTER
  131.     listColumnas[1].Texto    = "Dirección IP"
  132.  
  133.     listColumnas[2].Indice   = 2
  134.     listColumnas[2].Ancho    = (listViewTest.Ancho/5)
  135.     listColumnas[2].Posición = LVCFMT_CENTER
  136.     listColumnas[2].Texto    = "[email protected]"
  137.  
  138.     listColumnas[3].Indice   = 3
  139.     listColumnas[3].Ancho    = (listViewTest.Ancho/5)
  140.     listColumnas[3].Posición = LVCFMT_CENTER
  141.     listColumnas[3].Texto    = "SO"
  142.  
  143.     listColumnas[4].Indice   = 4
  144.     listColumnas[4].Ancho    = (listViewTest.Ancho/5)
  145.     listColumnas[4].Posición = LVCFMT_CENTER
  146.     listColumnas[4].Texto    = "Paí[email protected]"
  147.  
  148.     listViewTest.insertarColumnas(listColumnas)
  149.  
  150.     Var listItems:INFO_ITEM
  151.     ReDim listItems.Texto, 5
  152.  
  153.     listItems.Texto[0] = "Test"
  154.     listItems.Texto[1] = "Test1"
  155.     listItems.Texto[2] = "Test2"
  156.     listItems.Texto[3] = "Test3"
  157.     listItems.Texto[4] = "Test4"
  158.     listItems.Indice   = 0
  159.  
  160.     Var listItems2:INFO_ITEM
  161.     ReDim listItems2.Texto, 5
  162.  
  163.     listItems2.Texto[0] = "Test2"
  164.     listItems2.Texto[1] = "Test21"
  165.     listItems2.Texto[2] = "Test22"
  166.     listItems2.Texto[3] = "Test23"
  167.     listItems2.Texto[4] = "Test24"
  168.     listItems2.Indice   = 1
  169.  
  170.     listViewTest.insertarItem(listItems)
  171.     listViewTest.insertarItem(listItems2)
  172.  
  173.     comboboxOpciones.PosX = 170
  174.     comboboxOpciones.PosY = 10
  175.     comboboxOpciones.Ancho = 150
  176.     comboboxOpciones.Alto = 20
  177.     comboboxOpciones.Padre = frame.hWnd
  178.     comboboxOpciones.eventos.ComboBox.Selecció[email protected] = [email protected]
  179.     comboboxOpciones.construir(CBS_DROPDOWNLIST)
  180.  
  181.     comboboxOpciones.agregarItem("Hola")
  182.     comboboxOpciones.agregarItem("\x191Como estas?")
  183.     comboboxOpciones.agregarItem("Bien")
  184.     comboboxOpciones.agregarItem("Genial")
  185.     comboboxOpciones.agregarItem("y tu??")
  186.     comboboxOpciones.agregarItem("Bien, igual")
  187.     comboboxOpciones.agregarItem("Que padre")
  188.  
  189.     botonExaminar.Texto = "Examinar"
  190.     botonExaminar.PosX  = 10
  191.     botonExaminar.PosY  = 30
  192.     botonExaminar.Ancho = 100
  193.     botonExaminar.Alto  = 50
  194.     botonExaminar.Padre = frame.hWnd
  195.     botonExaminar.construir()
  196.  
  197.     botonNuevo.Texto = "Nueva ventana"
  198.     botonNuevo.PosX  = 10
  199.     botonNuevo.PosY  = 300
  200.     botonNuevo.Ancho = 100
  201.     botonNuevo.Alto  = 50
  202.     botonNuevo.Padre = frame.hWnd
  203.     botonNuevo.construir()
  204.  
  205.     checkboxReemplazar.Texto = "Reemplazar archivo"
  206.     checkboxReemplazar.PosX  = 10
  207.     checkboxReemplazar.PosY  = 90
  208.     checkboxReemplazar.Ancho = 200
  209.     checkboxReemplazar.Alto  = 30
  210.     checkboxReemplazar.Padre = frame.hWnd
  211.     checkboxReemplazar.Deshabilitado = Verdad
  212.     checkboxReemplazar.construir()
  213.  
  214.     grupoReemplazar.Texto = "Opciones"
  215.     grupoReemplazar.PosX  = 10
  216.     grupoReemplazar.PosY  = 130
  217.     grupoReemplazar.Ancho = 270
  218.     grupoReemplazar.Alto  = 50
  219.     grupoReemplazar.Padre = frame.hWnd
  220.     grupoReemplazar.construir()
  221.  
  222.         radioReemplazar.Texto = "Reemplazar archivo"
  223.         radioReemplazar.PosX  = 20
  224.         radioReemplazar.PosY  = 145
  225.         radioReemplazar.Ancho = 110
  226.         radioReemplazar.Alto  = 30
  227.         radioReemplazar.Padre = frame.hWnd
  228.         radioReemplazar.construir()
  229.  
  230.         radioNoReemplazar.Texto = "No reemplazar archivo"
  231.         radioNoReemplazar.PosX  = 140
  232.         radioNoReemplazar.PosY  = 145
  233.         radioNoReemplazar.Ancho = 130
  234.         radioNoReemplazar.Alto  = 30
  235.         radioNoReemplazar.Padre = frame.hWnd
  236.         radioNoReemplazar.construir()
  237.  
  238.     grupoReemplazar.cerrar()
  239.  
  240.     barraProgresoTest.PosX  = 10
  241.     barraProgresoTest.PosY  = 190
  242.     barraProgresoTest.Ancho = 150
  243.     barraProgresoTest.Alto  = 30
  244.     barraProgresoTest.Padre = frame.hWnd
  245.     barraProgresoTest.construir()
  246.     barraProgresoTest.empezar([email protected])
  247.    
  248.     etiquetaProgreso.Texto = "0 %"
  249.     etiquetaProgreso.PosX  = 10
  250.     etiquetaProgreso.PosY  = 230
  251.     etiquetaProgreso.Ancho = 150
  252.     etiquetaProgreso.Alto  = 30
  253.     etiquetaProgreso.Padre = frame.hWnd
  254.     etiquetaProgreso.construir(SS_CENTER)
  255.  
  256.     barraProgresoMarquee.PosX  = 170
  257.     barraProgresoMarquee.PosY  = 190
  258.     barraProgresoMarquee.Ancho = 150
  259.     barraProgresoMarquee.Alto  = 30
  260.     barraProgresoMarquee.Padre = frame.hWnd
  261.     barraProgresoMarquee.construir(PBS_MARQUEE)
  262.     barraProgresoMarquee.Marquee = 20
  263.  
  264.     barraProgresoVertical.PosX  = 330
  265.     barraProgresoVertical.PosY  = 70
  266.     barraProgresoVertical.Ancho = 30
  267.     barraProgresoVertical.Alto  = 150
  268.     barraProgresoVertical.Padre = frame.hWnd
  269.     barraProgresoVertical.construir(PBS_VERTICAL)
  270.     barraProgresoVertical.empezar([email protected])
  271.  
  272.     cajaTextoPrueba.Texto = "Holaa"
  273.     cajaTextoPrueba.PosX  = 10
  274.     cajaTextoPrueba.PosY  = 270
  275.     cajaTextoPrueba.Ancho = 150
  276.     cajaTextoPrueba.Alto  = 20
  277.     cajaTextoPrueba.Padre = frame.hWnd
  278.     cajaTextoPrueba.construir()
  279.  
  280.     cajaTextoPrueba.Limite = 10
  281.  
  282.     cajaTextoContra.Texto = "Password"
  283.     cajaTextoContra.PosX  = 170
  284.     cajaTextoContra.PosY  = 270
  285.     cajaTextoContra.Ancho = 150
  286.     cajaTextoContra.Alto  = 20
  287.     cajaTextoContra.Padre = frame.hWnd
  288.     cajaTextoContra.construir(ES_PASSWORD)
  289.     cajaTextoContra.ContraseñaCaracter = ASCII("+")
  290.  
  291.     frame.mostrar()
  292.     'Pausar(2500)
  293.     'Mensaje("Cambio")
  294.     'etiquetaElección.cambiarTexto("Groo")
  295.     frame.correr()
  296.  
  297. Proc nuevaVentana NoResultado
  298.     frameNuevo.mostrar()
  299.     frameNuevo.correr()
  300. FinProc
  301.  
  302. Proc ProgresoBarra():Entero NoResultado
  303.     Var rango:PBRANGE
  304.     Var i:Entero
  305.     rango = barraProgresoTest.Rango
  306.     Mientras i <= rango.iHigh
  307.         barraProgresoTest.Progreso = i
  308.         'etiquetaProgreso.cambiarTexto(EntCad(barraProgresoTest.Progreso) + " %")
  309.         Pausar(50)
  310.         i = i + 1
  311.     FinMientras
  312.     barraProgresoMarquee.MarqueeStop
  313. FinProc
  314.  
  315. Proc ProgresoBarraVertical():Entero NoResultado
  316.     Var rango:PBRANGE
  317.     Var i:Entero
  318.     rango = barraProgresoVertical.Rango
  319.     Mientras i <= rango.iHigh
  320.         barraProgresoVertical.Progreso = i
  321.         Pausar(150)
  322.         i = i + 1
  323.     FinMientras
  324. FinProc
  325.  
  326. Destruir listViewTest
  327. Destruir cajaTextoContra
  328. Destruir cajaTextoPrueba
  329. Destruir barraProgresoVertical
  330. Destruir barraProgresoMarquee
  331. Destruir barraProgresoTest
  332. Destruir comboboxOpciones
  333. Destruir etiquetaNuevo
  334. Destruir etiquetaProgreso
  335. Destruir etiquetaElección
  336. Destruir radioNoReemplazar
  337. Destruir radioReemplazar
  338. Destruir checkboxReemplazar
  339. Destruir grupoReemplazar
  340. Destruir botonNuevo
  341. Destruir botonExaminar
  342. Destruir frameNuevo
  343. 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: 2488
Ú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: 4075
Último mensaje Octubre 23, 2012, 07:37:39 pm
por Oggy
[Datos] Funciones para Haskell internas - JaAViEr

Iniciado por JaAViEr

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

Iniciado por wayver

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

Iniciado por FrostBite

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