Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 2
Ir a la página 1, 2  Siguiente
 
Componentes Y Controles De Usuario En Gambas
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Componentes Y Controles De Usuario En Gambas 
 
como se hacen de manera facil

buscando en google encontre un ejemplo demasiado complicado
y  



Public Class txt_super
    Inherits System.Windows.Forms.TextBox
end class
 


en vbnet es bastante facil se hereda  la clase y despues agrego el codigo o un control de usuario en un mini form sin bordes agrego los contoles y les agrego propiedades metodos y ... y la hacer buid aparecen en las herramientas



pero en gambas llevo 3 dias y no encuentro la manera
 
 



 
codificador - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Componentes Y Controles De Usuario En Gambas 
 
En gambas también podés heredar de un control existente para añadirle características.

' gambas class file
Inherits TextBox

. . .
 


Pero al hacerlo así no podrías modificar la apariencia visual del control, ni tampoco algunos de sus comportamientos.

Sólo es lógico utilizar la herencia si el nuevo control también es básicamente un TextBox, aunque mejorado.

Por otra parte gambas te permite crear un nuevo control por agregación de controles existentes. Para ello al iniciar el proyecto deberías marcar la opción "Programación de un componente". Los nuevos controles en gambas se basan en los controles UserControl o UserContainer.

UserControl es el control base para crear un nuevo control (debés declarar tu nuevo control como una subclase de UserControl).

UserContainer es el control base para crear un nuevo control que actuará como contenedor de otros controles, como Form, Panel, HBox, etc (debés declarar tu nuevo control como una subclase de UserContainer).

Por supuesto también podés crear un control desde cero, controlando todas sus características, incluyendo la presentación gráfica. Esto lleva más trabajo pero el control es total. Para la representación visual del control deberías dibujar sobre un control DrawingArea. Básicamente debés crear el nuevo control como una subclase de UserControl o UserContainer y dicha clase deberá tener como uno de sus atributos un control DrawingArea.

En la wiki de gambas tenés una guía como para comenzar (para Gambas3):

How To Program Components In Gambas
 




===================
Cómo programar con Gambas

Speed Books: informática libre.
 
fabianfv - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Componentes Y Controles De Usuario En Gambas 
 
Citar:
Pero al hacerlo así no podrías modificar la apariencia visual del control, ni tampoco algunos de sus comportamientos.

Sólo es lógico utilizar la herencia si el nuevo control también es básicamente un TextBox, aunque mejorado.

hola exactamente
 un texbox mejorado

Citar:

Por otra parte gambas te permite crear un nuevo control por agregación de controles existentes. Para ello al iniciar el proyecto deberías marcar la opción "Programación de un componente". Los nuevos controles en gambas se basan en los controles UserControl o UserContainer.

exactamente eso tambien

aunque no me gusta comparar en vb net tiene unas "clases plantilla" solo es cosa de agregar   Inherits System.Windows.Forms.TextBox
y aparecen las barras de propiedades y eventos  segun el control del que este heredando  y luego escribo el codido  en los eventos
modifico las propiedades o agrego propiedades o funciones o procedimientos  todo esto por codigo  aca no hay diseñador
y ahorro ir  texbox por texbox agragando codigo
y en caso de error arreglo solo una vez el codigo
si usare varios botones  y todos seran del mismo tamaño Inherits System.Windows.Forms.button y solo cambio el tamaño
y ahorro ir boton por boton cambiando el tamaño



o si necesito un control formado por 2 o mas controles agrego el usercontrol el cual si permite  usar el diseñador y agregar los controles con el diseñador sob re el
y luego escribo el código en los eventos modifico propiedades creo propiedades y expongo propiedades y eventos

si quiero reutilizar el compone simplemente agrego el archivo .vb al proyecto (y no genero las dependencias de usar un control compilado a parte)
todo esto desde el mismo proyecto  y al hacer generar que es como compilar F7 de gambas aparecen los componentes en la barra de herramientas


ahora como puedo hacer algo parecido en gambas
 pero no consigo entender como se hace en gambas  
 



 
codificador - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Componentes Y Controles De Usuario En Gambas 
 
Citar:

aca no hay diseñador

Es cierto, gambas no tiene un diseñador como el que describes, pero ¿acaso es necesario?

Citar:

y ahorro ir texbox por texbox agragando codigo
y en caso de error arreglo solo una vez el codigo

¿Y por qué habrías de ir por cada TextBox agregando código o arreglando errores?

En gambas, si hacés un nuevo control que "es un" nuevo tipo de TextBox, indicás que el proyecto es un componente, indicas que el componente es un control, especificas las propiedades y constantes requeridas como se indica en el HowTo y listo.

Probablemente sea un poquito más laborioso que en VB, pero me parece que también la forma de hacerlo en gambas es más clara, no te oculta que en realidad lo que estás haciendo es ampliar una jerarquía de objetos.

Citar:

si usare varios botones y todos seran del mismo tamaño Inherits System.Windows.Forms.button y solo cambio el tamaño
y ahorro ir boton por boton cambiando el tamaño

Pero para crear botones que tengan todos un mismo tamaño no necesitás crear un nuevo control.

Citar:

o si necesito un control formado por 2 o mas controles agrego el usercontrol el cual si permite usar el diseñador y agregar los controles con el diseñador sob re el
y luego escribo el código en los eventos modifico propiedades creo propiedades y expongo propiedades y eventos

En gambas también podés hacerlo de forma similar. En tu control deberías (además de heredar de UserControl):

  • Incluír en la clase de tu nuevo control la palabra clave EXPORT.
  • Tener un atributo de tipo Form.
  • Diseñar un formulario con los controles que querés que tenga.
  • Al atributo de tipo Form asignarle una instancia de tu formulario en el constructor de tu control.
  • Agregar observadores para que tu control capture y emita automáticamente los eventos que se produzcan en tiempo de ejecución sobre los controles que componen el formulario.

Y no hay mucho más que hacer que eso.

Citar:

si quiero reutilizar el compone simplemente agrego el archivo .vb al proyecto (y no genero las dependencias de usar un control compilado a parte)
todo esto desde el mismo proyecto y al hacer generar que es como compilar F7 de gambas aparecen los componentes en la barra de herramientas

En gambas, tenés que crear un ejecutable. Luego el control aparecerá en el toolbox del IDE.

Leete el HowTo que te indiqué, es todo lo que necesitás saber para crear un nuevo control.
 




===================
Cómo programar con Gambas

Speed Books: informática libre.
 
fabianfv - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Componentes Y Controles De Usuario En Gambas 
 
codificador:
 
Bueno yo he hecho varios componentes de usuario, para gambas2, en esta pagina web describo paso a paso como le voy añadiendo propiedades.
manual-basico-para-crear-componentes-en-gambas2
http://componentesgambas2.blogspot.com/2011/07/presentacion.html

Espero que te valga para empezar.

Hay descrito componentes que empiezan de "cero" y controles que empiezan heredando de otro componentes

fabianfv
No conocia esa ayuda de gambas3, la echare un vistazo para convertir mis controles de gambas2 a gambas3.




Saludos
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Componentes Y Controles De Usuario En Gambas 
 
hola
no se entendio pero

Citar:
Es cierto, gambas no tiene un diseñador como el que describes, pero ¿acaso es necesario?

no eso no se me referia a eso
en vbnet para inherits texbox tampoco hay diseñador solo aparece  el cuadro con las propiedades y eventos

y en inherits usercontrol si hay diseñador sobre un form sin bordes

Citar:
¿Y por qué habrías de ir por cada TextBox agregando código o arreglando errores?

por ejemplo e visto gente que incluso hace clases de vb que para hacer un texbox sololetras va texbox por txbox agregando el mismo codigo
muchas veces
yo solo creo una clase texboxsuper y le añado una sola ves el codigo solo letras y nada mas si hay un error en el codigo solo letras solo tengo que ir a un solo lugar y eso arreglara todos los texbox solo letras en todo el proyecto y como la clase es reutilizable en tpdos los proyectos futuros sin volver a reescribir el codigo otra vez

si creara los controles como proyectos indivuales generaria un dll que dificulta el debugeo
o modificaciones al control ademas de geerar otra dependencia

Citar:
Pero para crear botones que tengan todos un mismo tamaño no necesitás crear un nuevo control.

porque estan facil
al principio del proyecto  creo o reutilizo todos los controles que necesite y no tengo que volver a tocar mas


Citar:
En gambas también podés hacerlo de forma similar. En tu control deberías (además de heredar de UserControl):

tarde probare eso despes de este post
Citar:

En gambas, tenés que crear un ejecutable. Luego el control aparecerá en el toolbox del IDE.

Leete el HowTo que te indiqué, es todo lo que necesitas saber para crear un nuevo control.

ok lo leere  solo que tengo gambas 2 sobre debian6

Citar:

Espero que te valga para empezar.

Hay descrito componentes que empiezan de "cero" y controles que empiezan heredando de otro componentes

ok lo probare después de escribir este post
 



 
codificador - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Componentes Y Controles De Usuario En Gambas 
 
Citar:

por ejemplo e visto gente que incluso hace clases de vb que para hacer un texbox sololetras va texbox por txbox agregando el mismo codigo
muchas veces
yo solo creo una clase texboxsuper y le añado una sola ves el codigo solo letras y nada mas si hay un error en el codigo solo letras solo tengo que ir a un solo lugar y eso arreglara todos los texbox solo letras en todo el proyecto y como la clase es reutilizable en tpdos los proyectos futuros sin volver a reescribir el codigo otra vez

El año pasado cuando estaba escribiendo algunos ejemplos que muestran cómo crear controles personalizados, comencé a refactorizar el código del ValueBox que contenía algunos bugs, pero rápidamente me di cuenta que como estaba estructurado el código me llevaría mucho trabajo. Cuando le comenté esto a Benoit me dijo que tenía previsto reescribir el código de ValueBox, pero que antes de hacerlo tenía pensado escribir un control MaskBox que serviría como apoyo.

Gambas3 incluye desde hace algún tiempo ese control MaskBox que es un control TextBox que te permite restringir las entradas del usuario de una manera muy flexible. Es decir, que en Gambas3 no necesitarías crear un TextBox personalizado para hacer eso.

Un motivo más para comenzar a migrar a Gambas3.
 




===================
Cómo programar con Gambas

Speed Books: informática libre.
 
fabianfv - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Componentes Y Controles De Usuario En Gambas 
 


todavía no e  revisado el 3
pero si el maskedit es similar al  de .net asi como viene
si colocas solo números y usas el carácter _ de mascara acepta valores 1_2_3 escribiéndolos o pegándolos
y 1_2_3 no es un numero valido para operaciones matemáticas por lo tanto no sirve

pero si serviria para otros propositos como que el numero ingresado tenga que obligatoriamente usar un formato predeterminado como 1:2:3

en ese caso se definio el maskedit para numeros y mascara =: y en ese caso seria muy practico y mucho mas facil usar  el maskedit


volviendo al caso de vb
en vb net

dare algo mas detalles como se hace y lo que quiero hacer en gambas
perdonen por colocar código ajeno

creo una solución
trae un formulario por defecto form1

agrego una clase y escribo el código
'no hay diseñador gráfico

Public Class supertexbox
    Inherits System.Windows.Forms.TextBox  'esto lo escribo


    Private Sub supertexbox_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.TextChanged
'
        MessageBox.Show("a cambiado el texto")
    End Sub

End Class
 


luego doy generar que es equivalente a compilar de gambas y en el cuadro de herramientas aparece un componente llamado supertexbox
el cual puedo usar de inmediato simplemente lo arrastro a un formulario y no hago nada mas

y hago esto mismo en gambas y no es asi
me pasa por intentar hacer las cosas estilo vs net en gambas
 



 
codificador - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Componentes Y Controles De Usuario En Gambas 
 
ok después de mucho intentar y leyendo los link
 e entendido eso de generar componentes pero son componentes externos ya compilados




el problema es que son componentes compilados o binarios

y la idea es usar solo código dentro del mismo proyecto no hacer un proyecto por componentes, compilarlos y copiarlos al directorio de componentes
la idea es al usar los archivos de clase del proyecto para hacer los componentes heredado de componentes que ya existan



e intentado hacerlos pero gambas error y se cierra


actualizando

como comente en otro hilo
lo que estaba tratabdo de hacer en gambas 2 y no funcionaba en gambas3 funciono  
aun no se como manejar los eventos y las propiedades  

solo añadí la clase y la nombre texboxsuper luego clic en compilar y automáticamente aparece en las herramientas




el mismo codigo en gambas 2 parece no funcionar

el form lleva un texbox un texboxsuper y un boton

6834179gambas3componente

el problema es que no entiendo como se hace para manejar los eventos por ejemplo en la clase texboxsuper agregar codigo al evento  keypress y una propiedad
 
 



 
última edición por codificador el Martes, 23 Agosto 2011, 05:43; editado 1 vez 
codificador - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Componentes Y Controles De Usuario En Gambas 
 
Citar:
el problema es que no entiendo como se hace para manejar los eventos por ejemplo en la clase texboxsuper agregar codigo al evento  keypress y una propiedad



Debes interceptar los eventos, para interceptar los eventos debes declararlo

Ejemplo: En la clase texboxsuper

Public Sub _new()
    '   INICIAMOS LAS VARIABLES

    Dim hObs As Observer
    
    hObs = New Observer(Me) As "TextBox" ' declara una nueva clase observer llamada TextBox

End Sub
 


Ya podemos interceptar los eventos que queramos.
Ejemplo: interceptar el evento KeyPress

Public Sub TextBox_KeyPress()
    ' Aqui interceptamos el evento keypress del textbox
    Dim iPos As Integer, scopia As String, pp As Integer, iPP As Integer
    
  
    If Me.ReadOnly Then Return
    
    If Asc(Key.Text) < 32 Or Key.Code = key.Delete Then
        bEscribo = False 'importante para que salte el evento change y actualiza las teclas Supr
          bDelete = True
        Return ' teclas de control
        
    Endif
   Select case Key.Text
       case "0", "1"
       ' Codigo a ejecutar
 End Select

End
  
 



Yo me hice una adaptación personalizada del control MaskBox, con algunas particularidades, una que me gusta es la posibilidad de formatear el contenido del control.
Con el eventos LostFocus formateo el textbox y con el evento GotFocus recupero el valor del control (sin formato).
 



 
angelnu - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Preparar Nuestro Programa Para Un Usuario.... Shell General 5 Viernes, 21 Octobre 2011, 13:54 Ver último mensaje
Dani26
No hay nuevos mensajes Controles De Usuario ljma Controles/Librerías/Componentes 0 Miercoles, 07 Marzo 2012, 14:04 Ver último mensaje
ljma
No hay nuevos mensajes Como Añadir Controles A Nuestro Proyecto ... shordi General 9 Sabado, 22 Octobre 2016, 22:38 Ver último mensaje
shordi
No hay nuevos mensajes ¿Cual Es El Evento Donde Se Crea Y Carga ... gambafeliz Controles/Librerías/Componentes 7 Sabado, 21 Septiembre 2019, 16:00 Ver último mensaje
gambafeliz
 

Publicar nuevo tema  Responder al tema  Página 1 de 2
Ir a la página 1, 2  Siguiente

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron