|
Página 1 de 2
|
Acceder A Una Propiedad De Un Objeto Mediante Su TAG?
Autor |
Mensaje |
Tasagore
Usuario
Registrado: Abril 2016
Mensajes: 48
Edad: 54
|
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
|
#1 Domingo, 03 Julio 2016, 16:35 |
|
|
tincho
Analista Programador
Registrado: Noviembre 2014
Mensajes: 2565
Edad: 48 Ubicación:
|
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.
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 |
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 |
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 |
|
#2 Domingo, 03 Julio 2016, 16:55 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Acceder A Una Propiedad De Un Objeto Mediante Su TAG?
he creado 80 etiquetas
Que tipo de Objecto son estas etiquetas ( Label, TextLabel, etc...) ?
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
|
#3 Domingo, 03 Julio 2016, 17:58 |
|
|
Tasagore
Usuario
Registrado: Abril 2016
Mensajes: 48
Edad: 54
|
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.
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.
|
#4 Domingo, 03 Julio 2016, 18:33 |
|
|
Tasagore
Usuario
Registrado: Abril 2016
Mensajes: 48
Edad: 54
|
Re: Acceder A Una Propiedad De Un Objeto Mediante Su TAG?
he creado 80 etiquetas
Que tipo de Objecto son estas etiquetas ( Label, TextLabel, etc...) ?
Son tipo LABEL.
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
|
#5 Domingo, 03 Julio 2016, 18:34 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
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í:
Sólo te faltaría controlar el bloqueo de mayúsculas con un Flag, por ejemplo.
Saludos.
=================== No podemos regresar
|
#6 Domingo, 03 Julio 2016, 19:29 |
|
|
Tasagore
Usuario
Registrado: Abril 2016
Mensajes: 48
Edad: 54
|
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í:
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...
|
#7 Domingo, 03 Julio 2016, 19:49 |
|
|
Tasagore
Usuario
Registrado: Abril 2016
Mensajes: 48
Edad: 54
|
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
|
#8 Domingo, 03 Julio 2016, 20:22 |
|
|
Tasagore
Usuario
Registrado: Abril 2016
Mensajes: 48
Edad: 54
|
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!
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
|
#9 Domingo, 03 Julio 2016, 20:32 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Acceder A Una Propiedad De Un Objeto Mediante Su TAG?
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
... arrays de control pero como en gambas no existe
De todas formas en gambas el array de Controles existe.
Exemplum:
última edición por vuott el Lunes, 04 Julio 2016, 01:33; editado 2 veces
|
#10 Domingo, 03 Julio 2016, 20:37 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 1 de 2
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
|
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
|
|
|
|
|