Un Mismo Tooltip Para Varios Botones Hay Otra Forma De Hacerlo?[Resuelto]


Ir a la página 1, 2  Siguiente

Objetivo: Un Mismo Tooltip Para Varios Botones Hay Otra Forma De Hacerlo?[Resuelto]
hay otra forma de codificar esto:


btnset1.Tooltip = "El color de este botón indica quien" & "\n" & "comienza sacando en este juego!!"
btnset2.Tooltip = "El color de este botón indica quien" & "\n" & "comienza sacando en este juego!!"
btnset3.Tooltip = "El color de este botón indica quien" & "\n" & "comienza sacando en este juego!!"
btnset4.Tooltip = "El color de este botón indica quien" & "\n" & "comienza sacando en este juego!!"
btnset5.Tooltip = "El color de este botón indica quien" & "\n" & "comienza sacando en este juego!!"
btnset6.Tooltip = "El color de este botón indica quien" & "\n" & "comienza sacando en este juego!!"
btnset7.Tooltip = "El color de este botón indica quien" & "\n" & "comienza sacando en este juego!!"

última edición por v3ctor el Miercoles, 05 Noviembre 2014, 15:18; editado 1 vez
Objetivo: Re: Un Mismo Tooltip Para Varios Botones Hay Otra Forma De Hacerlo?
...una cosa como esta:

Public Sub Form_Open()

Dim b As Object

For Each b In FMain.Children
If Object.Type(b) = "Button" Then b.Tooltip = "El color de este botón indica quien" & "\n" & "comienza sacando en este juego!!"
Next

End

Perfil MP  
Objetivo: Re: Un Mismo Tooltip Para Varios Botones Hay Otra Forma De Hacerlo?
Vuott:

Las comillas de "Button", creo que no hacen falta. No es una cadena, es un objeto.

Yo habría usado...

Public Sub Form_Open()

Dim b As Object

For Each b In FMain.Controls
If b Is Button Then b.Tooltip = "El color de este botón indica quien" & "\n" & "comienza sacando en este juego!!"
Next

End


Saludos

Objetivo: Re: Un Mismo Tooltip Para Varios Botones Hay Otra Forma De Hacerlo?
Shell escribió: [Ver mensaje]
Vuott:

Las comillas de "Button", creo que no hacen falta. No es una cadena, es un objeto.

Yo habría usado...

Hola Shellll,
hemos usado dos functiones diferentes.
La mia requiere ...anhela - como parámetro - un objecto, y regresa una cadena: el tipo de objecto.

Ambas son buenas sugerencias.
La tuya es muy buena, porque es un poco mas corta.

Una otra manera, un poco como la tu sugerencia y un poco como la mia, es esta:
Public Sub Form_Open()

Dim b As Object

For Each b In FMain.Controls
If Object.Is(b, "Button") Then b.Tooltip = "El color de este botón indica quien" & "\n" & "comienza sacando en este juego!!"
Next

End



Saludos, amigo Shell ! bye1

última edición por vuott el Lunes, 03 Noviembre 2014, 17:16; editado 4 veces
Perfil MP  
Objetivo: Re: Un Mismo Tooltip Para Varios Botones Hay Otra Forma De Hacerlo?
Hola Vuott.

Tengo que practicar esa ultima función que has mostrado.
Ya veo que Object tiene muchos métodos.

http://gambasdoc.org/help/comp/gb/object?es&v3

Interesante.

Saludos

Objetivo: Re: Un Mismo Tooltip Para Varios Botones Hay Otra Forma De Hacerlo?
dj

Perfil MP  
Objetivo: Re: Un Mismo Tooltip Para Varios Botones Hay Otra Forma De Hacerlo?
Saludos cordiales!

Es la primera vez que "posteo", de hecho, me acabo de registrar, pero es que este tema me interesa, También soy novicio en gambas, pero lo estoy intentando con gambas 2.21 corriendo en una distribución GNU/linux venezolana: canaima 3.1. dicho esto, paso a materia:

Yo deseo cambiar de una manera rápida y automática en varias etiquetas (20 controles Label) los atributos de color de fondo (Background) y el color de la fuente (Foreground), algo similar a lo que se plantea aquí. Al principio los 20 Label tienen los mismos colores de background y foreground, pero en la medida que el programa corre se van cambiendo esos atributos en los Label a determinados tiempos con colores diferentes, entonces, lo que deseo es poder restaurar esos atributos en los Label a los colores originales cuando, despues de un tiempo, decida hacerlo mediante un procedimiento personalizado, activado por un botón, por ejemplo. Además, se debe considerar que en el formulario hay otros controles Label que no estan sometidos a estos cambios de colores y no deben ser afectados por el procedimiento personalizado de restauración.

Con Visual Basic 6 esto yo lo hago muy fácil definiendo los 20 Label en una matriz y escribiendo un procedimiento como este:

Sub Button_Click()
For i = 0 to 19
Label1(i).Foreground = grey 'Gris
Label1(i).Background = Navy 'Azul oscuro
Next i
End Sub

Si aplicase los código que aquí se han expuesto debería yo escribir algo como: ??

Dim etq As Object

For Each etq In FMain.Controls
If Object.Is(etq, "Label") Then
.Foreground = "&HDDDDDD&"
.Background = "&H0000AA&"
End If
Next

Pero recuerdo que les dije que tengo más de 20 Labels en el formulario y sospecho que con este código todos los label del formulario se verían afectados, o no?

Yo he pensado que si reescribo este código utilizando en él el método GetProperty del objeto Object tal vez pueda discriminar entre los Labels si los 20 que me interesan los agrupo, que creen ustedes?

Si previamente le asigno a la propiedad "Group" de los 20 Labels el valor: "Celdas" y, entonces, defino el código así:

Dim etq As Object

For Each etq In FMain.Controls
If Object.Is(etq, "Label") And Object.GetProperty(etq, "Group") = "Celdas" Then
.Foreground = "&HDDDDDD&"
.Background = "&H0000FF&"
End If
Next

No he probado este código (lo voy a hacer más tarde), pero si alguno de ustedes ya lo sabe agradecería me lo hiciera saber, o quizá si la manera correcta es de otra forma...

Gracias de antemano!!!

luysess.

Perfil MP  
Objetivo: Re: Un Mismo Tooltip Para Varios Botones Hay Otra Forma De Hacerlo?
Saludos!!

Aquí estoy de nuevo...

Probré el código anterior...pero no dió resultado!!! Se genera un error pués parece que no puedo usar "Group" como propiedad en el procedimiento Object.GetProperty(etq, "Group") = "Celdas"...decepcionante!!!

He resuelto mi dilema de la siguiente forma:

Código (en un botón, directamente, es decir, sin usar un procedimiento personalizado):

PUBLIC SUB Button2_Click()

DIM etq AS Object, i AS Integer

FOR EACH etq IN FMain.Controls
IF Object.Is(etq, "Label") THEN
FOR i = 1 TO 20
IF Object.GetProperty(etq, "Tag") = i THEN
etq.ForeColor = &HAAAAAA&
etq.Background = &H0000AA&
ENDIF
NEXT
ENDIF
NEXT

END

Con este código puedo restaurar el ForeColor (o Foreground) y el Background (o BackColor) (como se esté usando) de las 20 Labels, en particular, sin afectar el resto de Labels del formulario, sin embargo, me parece que es poco eficiente, es decir, demasiados ciclos!! Debe existir una manera más eficiente de hacerlo, como en VB6. Creo que se debería poder usar la propiedad "Group" para ello.

Nota importante: En este caso es inprescindible que el resto de Labels no tengan definida la propiedad "Tag" o, al menos, que no tengan asignados números que coincidan con los de las Labels del grupo "Celdas", o sea, que no estén en el rango de 1 a 20, porque de lo contrario las que coincidan en el valor de "Tag" serán afectadas.

luysess

Perfil MP  
Objetivo: Re: Un Mismo Tooltip Para Varios Botones Hay Otra Forma De Hacerlo?
Hola!!

Siguiendo con las pruebas he podido reducir el codigo anterior a:

PUBLIC SUB Button2_Click()

DIM etq AS Object

FOR EACH etq IN FMain.Controls
IF Object.Is(etq, "Label") AND NOT IsNull(Object.GetProperty(etq, "Tag")) THEN
IF Val(Object.GetProperty(etq, "Tag")) > 0 AND Val(Object.GetProperty(etq, "Tag")) < 20 THEN
etq.ForeColor = &HAAAAAA&
etq.Background = &H0000AA&
ENDIF
ENDIF
NEXT

END

Perfil MP  
Objetivo: Re: Un Mismo Tooltip Para Varios Botones Hay Otra Forma De Hacerlo?
Perfecto, en programación menos es mejor. Tan sólo una precisión: La colección FMain.Controls afecta a todos los controles del proyecto, ya estén en el formulario principal o no, es decir, si tu proyecto tiene muchos forms abiertos, puedes llegar a recorrer muchos ciclos del bucle innecesarios. Si el grupo de controles que quieres tratar están en otro formulario, sólo tienes que recorrer la colección .Controls del formulario en cuestión. Más rápido, vamos.

Otra cosa: gambas 2 está deprecado, abandonado, obsoleto, viejito, jubilado, muerto, etc. etc. No lo uses.
Añadete el repositorio estable de gambas3 (comando: sudo add-apt-repository ppa:gambas-team/gambas3) y usa y disfruta de la última versión estable. Han cambiado tantas cosas desde el viejo gambas2 que casi no vale la pena ni comentarlas.

Bienvenido y suerte.

Perfil MP  
Ir a la página 1, 2  Siguiente

Página 1 de 2


  
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

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.478s (PHP: -78% SQL: 178%)
Consultas SQL: 47 - Debug off - GZIP Activado