Cambiar la propiedad Caption de etiquetas TLabels en runtime mediante bucle for.
Hola a todos, os pongo en situación. Resulta que tengo en un Form 13 etiquetas (Label1..Label13) donde la propiedad Caption es la que trae por defecto (p.ej. "Label1"). Básicamente lo que trato de hacer es cambiar dicha propiedad Caption de cada una de las 13 etiquetas en tiempo de ejecución mediante el uso de un bucle for de la siguiente manera:
Código:
for(int x = 1; x <= 13; x++) |
Hola Yugo.
Ejemplo: Código:
{ |
Código:
{ "[C++ Warning] Unit1.cpp(23): W8060 Possibly incorrect assignment" Por otro lado, hay algo que no entiendo. La variable ComponentCount del bucle for, ¿contiene el número de componentes que posee nuestro Form? Porque de ser así, al tener también un botón en el Form y cuente como un componente más para la propiedad ComponentCount del Form, ¿puede ser que la precaución que salte sea por este motivo, ya que el bucle for se ejecutaría una vez más de lo que realmente haría falta? |
Hola Yugo.
Cita:
Código:
{ Saludos :) |
Bueno pues dicho mensaje de precaución desaparece al realizar la siguiente asignación !=0 a la condición if por si el puntero cast falla:
Código:
if( (LB = static_cast<TLabel*>(FindComponent("Label"+IntToStr(i)))) !=0 ); |
Hola Yugo.
Seguramente no viste mi último mensaje mientras escribias el tuyo. Usa el código que figura en ese ya que el anterior no es seguro, por que asigna en la comparación sin que aún se sepa si es un TLabel. Saludos :) |
Cierto ecfisa, justo tras enviar mi último mensaje vi tu respuesta, gracias.
He estado revisando un poco tu código, que funciona igualmente muy bien... Código:
{ Otra cosa ecfisa, al inicializar la variable i del bucle for a i=0, también podríamos haberla inicializado a i=1 cuando el nombre de la primera etiqueta es Label1. ¿No? Por cierto, no tengo nada que disculparte, te agradezco muchísimo tu ayuda. |
Hola Yugo.
Cita:
Código:
for(int i=0; i<ComponentCount; i++) { Código:
for(int i=1; i<=ComponentCount; i++) Código:
{ Saludos :) |
Muchas gracias por la aclaración ecfisa. Por lo demás creo que entendí tu código. Un saludo!!
|
La franja horaria es GMT +2. Ahora son las 16:40:37. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi