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
 
Acceder A Una Propiedad De Un Objeto Mediante Su TAG?
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Acceder A Una Propiedad De Un Objeto Mediante Su TAG? 
 
Buenas

Estoy haciendo un formulario con un teclado para usarlo en un panel táctil, para ello he creado 80 etiquetas (las teclas)
y según el usuario pulse una u otra mediante el TAG se qué tecla ha pulsado y actúo en consecuencia.

Mi duda es si puedo acceder a las caption de las 80 etiquetas por código, imaginad por ejemplo que una de las teclas es SHIFT, en ese caso el "caption" de las etiqueta cambiaría de minúsculas a mayúsculas, eso en VB6 sería muy sencillo usando arrays de control pero como en gambas no existe, no veo cómo puedo acceder a ello y por código (una a una) lo veo inviable.

Ejemplo absurdo que NO funciona, es para explicarme un poco mejor:

Dim KB1 as string="0123456789"
Dim I as integer

For I=1 to 10
    etiqueta[i].caption=mid(KB1,I,1)
next

Pues algo parecido...
 



 
última edición por Tasagore el Domingo, 03 Julio 2016, 16:36; editado 1 vez 
Tasagore - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Acceder A Una Propiedad De Un Objeto Mediante Su TAG? 
 
Hola, hice un ejercicio que creo que te ayudara para lo que queres hacer.

Saludos.

ejercicio-teclado-0.0.1.tar.gz
Descripción: Ejercicio que imita un teclado con etiquetas. 
Descargar
Nombre del archivo: ejercicio-teclado-0.0.1.tar.gz
Tamaño: 11.29 KB
Descargado: 46 veces
ejercicio-teclado-0.0.1.tar.gz
Descripción: Ejercicio que imita un teclado con etiquetas. 
Descargar
Nombre del archivo: ejercicio-teclado-0.0.1.tar.gz
Tamaño: 11.29 KB
Descargado: 46 veces
ejercicio-teclado-0.0.1.tar.gz
Descripción: Ejercicio que imita un teclado con etiquetas. 
Descargar
Nombre del archivo: ejercicio-teclado-0.0.1.tar.gz
Tamaño: 11.29 KB
Descargado: 46 veces

 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Acceder A Una Propiedad De Un Objeto Mediante Su TAG? 
 
Tasagore escribió: [Ver mensaje]
he creado 80 etiquetas

Que tipo de Objecto son estas etiquetas (Label, TextLabel, etc...) ?




Tasagore escribió: [Ver mensaje]
arrays de control pero como en gambas no existe


Por "control" quieres decir "objectos" (Button, Label, etc...) ? O que otro ?
 



 
última edición por vuott el Domingo, 03 Julio 2016, 20:04; editado 2 veces 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Acceder A Una Propiedad De Un Objeto Mediante Su TAG? 
 
tincho escribió: [Ver mensaje]
Hola, hice un ejercicio que creo que te ayudara para lo que queres hacer.

Saludos.


Gracias pero esa es la parte que ya tengo hecha, el teclado me funciona perfectamente pero sigo sin saber cómo acceder de una manera rápida a los caption de las etiquetas ya que necesito poder cambiar lo que contienen y no de una en una.
 



 
Tasagore - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Acceder A Una Propiedad De Un Objeto Mediante Su TAG? 
 
vuott escribió: [Ver mensaje]
Tasagore escribió: [Ver mensaje]
he creado 80 etiquetas

Que tipo de Objecto son estas etiquetas (Label, TextLabel, etc...) ?

Son tipo LABEL.

Tasagore escribió: [Ver mensaje]
arrays de control pero como en gambas no existe


Por "control" quieres dices "objectos" (Button, Label, etc...) ? O que otro ?


Sí, como te digo, un objeto tipo Label, o Text, o Button...En mi caso por comodidad he usado objetos label, dependiendo de dónde el usuario ponga el dedo actúa como si fuera una tecla.

El tema es que son más de 80 objetos y un simple pulsado de "shift" debe cambiar las caption de la mayoría de esas labels, y una a una me parece un método muy "barroco".

Este es un proyecto de VB6 que estoy migrando a gambas y ahí era muy sencillo usando arrays del objeto Label pero aquí no veo la forma, con el TAG y el grupo tengo solucionada la gestión de eventos, pero no he averiguado como acceder a las propiedades en función del TAG (cambiar el caption de la label que tiene TAG 47, por ejemplo).
 



 
última edición por Tasagore el Domingo, 03 Julio 2016, 18:41; editado 2 veces 
Tasagore - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Acceder A Una Propiedad De Un Objeto Mediante Su TAG? 
 
No creo que puedas evitar el bucle. Pero tampoco es tan complicado, algo así:
Public Sub Form_KeyPress()

    Dim c As Object
    
    If Key.Shift Then
        For Each c In Me.Controls
            If c Is Button Then
                c.text = Upper(c.text)
            Endif
        Next
    Endif

End

Public Sub Form_KeyRelease()

    Dim c As Object
  
    If Not Key.Shift Then
        For Each c In Me.Controls
            If c Is Button Then
                c.text = Lower(c.text)
            Endif
        Next
    Endif

End
 

Sólo te faltaría controlar el bloqueo de mayúsculas con un Flag, por ejemplo.

Saludos.
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Acceder A Una Propiedad De Un Objeto Mediante Su TAG? 
 
shordi escribió: [Ver mensaje]
No creo que puedas evitar el bucle. Pero tampoco es tan complicado, algo así:
Public Sub Form_KeyPress()

    Dim c As Object
    
    If Key.Shift Then
        For Each c In Me.Controls
            If c Is Button Then
                c.text = Upper(c.text)
            Endif
        Next
    Endif

End

Public Sub Form_KeyRelease()

    Dim c As Object
  
    If Not Key.Shift Then
        For Each c In Me.Controls
            If c Is Button Then
                c.text = Lower(c.text)
            Endif
        Next
    Endif

End
 

Sólo te faltaría controlar el bloqueo de mayúsculas con un Flag, por ejemplo.

Saludos.

He puesto el ejemplo del shift pero puede que tenga que cambiar todos los caption, no es tan sencillo.

Pero me has dado una idea usando la colección Controls, voy a probar...
 



 
Tasagore - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Acceder A Una Propiedad De Un Objeto Mediante Su TAG? 
 
Perfecto, tu idea me vale, asumiendo que todas las etiquetas que quiero controlar se llaman "Labelxx":

Dim CT As Object
dim sKB as String

sKB = "1234567890qwertyuiopasdfghjklñzxcvbnm"

For Each CT In Me.Controls
    If Left(CT.Name, 5) = "Label" Then
       CT.Caption = Mid(sKB, CT.Tag, 1)
    Endif
Next

De este modo a sKB puedo asignarle el valor que toque y cambiar el caption de todas las teclas que necesite, luego al pulsarlas no tengo más que mirar el caption de la pulsada y tengo el valor que hay que recoger.

Gracias!
 



 
última edición por Tasagore el Domingo, 03 Julio 2016, 20:23; editado 1 vez 
Tasagore - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Acceder A Una Propiedad De Un Objeto Mediante Su TAG? 
 
Tasagore escribió: [Ver mensaje]
Perfecto, tu idea me vale, asumiendo que todas las etiquetas que quiero controlar se llaman "Labelxx":

Dim CT As Object
dim sKB as String

sKB = "1234567890qwertyuiopasdfghjklñzxcvbnm"

For Each CT In Me.Controls
    If Left(CT.Name, 5) = "Label" Then
       CT.Caption = Mid(sKB, CT.Tag, 1)
    Endif
Next

De este modo a sKB puedo asignarle el valor que toque y cambiar el caption de todas las teclas que necesite, luego al pulsarlas no tengo más que mirar el caption de la pulsada y tengo el valor que hay que recoger.

Gracias!

Aunque ahora me pasa una cosa curiosa, si os fijáis en el código, en el string hay una "ñ", cuando pido el MID de esa posición almacena dos caracteres en lugar de uno y no devuelve correctamente la ñ ¿?

mid(sKB,30,1) debería ser una ñ pero me devuelve un caracter diferente
mid(sKB,31,1) debería ser una z pero me devuelve otro caracter diferente
mids(sKB,32,1) debería ser una x pero es una z, luego la ñ la está almacenando como dos dígitos

en el mundo windows esto me recuerda a las peleas CHAR/OEM, en gambas tengo que tener cuidado con la codificación de las variables? Me refiero en cuanto a que sean UTF8 o demás.
 



 
última edición por Tasagore el Domingo, 03 Julio 2016, 20:33; editado 1 vez 
Tasagore - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Acceder A Una Propiedad De Un Objeto Mediante Su TAG? 
 
Tasagore escribió: [Ver mensaje]

Aunque ahora me pasa una cosa curiosa, si os fijáis en el código, en el string hay una "ñ", cuando pido el MID de esa posición almacena dos caracteres en lugar de uno y no devuelve correctamente la ñ ¿?
Me refiero en cuanto a que sean UTF8 o demás.


Tienes que usar




Tasagore escribió: [Ver mensaje]
... arrays de control pero como en gambas no existe

De todas formas en gambas el array de Controles existe.

Exemplum:
Private Const LATUM As Byte = 60


Public Sub Form_Open()

  Dim lb As Label
  Dim ll As New Label[]   '  Variable vectorial de Label
  Dim b As Byte
  
    Me.W = LATUM * 12
    
    For b = 0 To 9
' Creo una Label y...
     lb = New Label(Me)
'...la asigno a el array de Label:
     ll.Push(lb)
    Next
    
' A cada Label, contenida en el array de Label, atribuyo algunas propiedades:
    For b = 0 To ll.Max
      With ll[b]
        .W = LATUM
        .H = 40
        .X = b * LATUM
        .Y = LATUM + (b * b)
        .Text = " Label " & CStr(b)
        .Background = Rand(0, &FFFFFF)
      End With
    Next

End

 



 
última edición por vuott el Lunes, 04 Julio 2016, 01:33; editado 2 veces 
vuott - 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 ¿Cómo Acceder A Los Elementos De Una Web? Evadido2 Controles/Librerías/Componentes 5 Jueves, 06 Enero 2011, 22:33 Ver último mensaje
estrella_de_galicia
No hay nuevos mensajes Scrip Para Acceder A Mysql Ricardo Prieto General 2 Domingo, 22 May 2016, 02:15 Ver último mensaje
vicr
No hay nuevos mensajes Alterar Una Propiedad O Un Método De Un O... vuott General 10 Martes, 25 Octobre 2016, 22:56 Ver último mensaje
vuott
No hay nuevos mensajes Crear Objeto Y Ponerlo Como El Objeto Supe... gambafeliz General 4 Martes, 23 Junio 2020, 07:29 Ver último mensaje
v3ctor
 

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