Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Cambiar propiedades componente en tiempo de ejecucion

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Cambiar propiedades componente en tiempo de ejecucion Responder citando

Buenas:

Tengo un grana numero de componentes TEdit en un Tpanel (Unos sesenta) a los que en tiempo de Ejecucion le debo de cambiar alguna de sus propiedades....
Mi pregunta es la siguiente Hay alguna manera de cambiar las propiedades de esos TEDIT sin tener Que ir indicandolo uno por uno de la foma:

TEdit1->Propiedad =......
Tedit2->Propiedad =......
......
.......
TEdit60->Propiedad =......

Algo asi como un bucle en el que se identifique el Tedit que deseo Modificar....

Espero haber explicado bien lo que quiero

Gracias
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

mira el hilo que tiene por titulo "Lista de Formularios de la Aplicación" en un post posteo un ejemplo para una lista de TComboBox

https://cppbuilder.es/viewtopic.php?t=12480
Volver arriba
Ver perfil de usuario Enviar mensaje privado MSN Messenger
Mensaje    Asunto: Responder citando

Aun que la opción más correcta es buscar por el foro, debes indicarlo de la siguiente manera, selecciona tus botones (todos a los que requieras "escuchar", cuando presiones click)

En el evento OnClick de los botones seleccionados puedes establecer algo como lo siguiente

Código:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   TButton *pBoton = dynamic_cast<TButton*> (Sender);
   ShowMessage("Boton pulsado: "+pBoton->Name);
   pBoton->Font->Size = 20; // modificamos la fuente
}
//---------------------------------------------------------------------------

en este pequeño trozo de codigo, te muestra el nombre del boton que has pulsado, recuerda seleccionar todos tus botones y establecer en el evento OnClick un codigo similar al anterior
_________________
Cool


Ultima edición por Cesar C. Salazar Gonzalez el Mar 14 Ago, 2007 11:24 pm, editado 1 vez
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

Hola César, estoy un poco desconcertado con tu mensaje privado. Me gustaría que me lo expliques mejor, si puede ser por favor.

Código:

Estimado amigo Tor, entiendo el impetu que tienes por ayudar, pero antes de postear revisa que tu codigo funcione, para no tener que estar divagando.

cada una de las soluciones que amablemente estas posteando, YA han sido realizadas por un servidor puesto que no es la primera vez, que escribo en el foro aun asi no es la primera vez que pido una consulta, agradezco el interes, pero antes de establecer tu codigo asegurate que estas dando la respuesta correcta, no lo digo por mi, lo digo por aquellas personas que aun empiezan con BCB.

Saludos...

Es tan solo una sugerencia.

_________________
César C. Salazar González / Chiapas – México


Sabes que no entiendo donde dice

Cita:

“pero antes de postear revisa que tu codigo funcione, para no tener que estar divagando.”


Si tiene un error seria bueno que postes públicamente así podría yo aprender un poquito mas, si te refieres al asterisco es cierto le falta pero si no me equivoco lo menciono mas abajo (el asterisco fue filtrado por un programa en el servidor)

Otra parte que no entiendo q me quieres decir es
Cita:

“cada una de las soluciones que amablemente estas posteando, YA han sido realizadas por un servidor puesto que no es la primera vez, que escribo en el foro aun asi no es la primera vez que pido una consulta,”


y donde dice
Cita:

“pero antes de establecer tu codigo asegurate que estas dando la respuesta correcta,”


Discúlpame pero cuando pongo una respuesta es porque lo tengo funcionando de lo contrario no lo pondría. y mencionaría que otra persona lo realizo.
Quizás no sea correcto decir esto en el foro, tengo entiendo que eres un programador con mucha experiencia, y muy respetado incluso 90% de las personas de este foro conocen tu reputación, yo también tengo el tiempo muy acotado y es la única ves que voy a escribir algo así, y no voy a generar una discusión.
En este foro me siento muy bien, e aprendido mucho con todos ustedes y solo trato de compartir algunas cosas q a algunos puede llegar a serles útil. Cuando deje de sentirme bien quizás ya no tenga nada que hacer por acá.

No se me parece que si tu crees que yo estoy dando respuestas falsas o con errores, te dirijas a un administrador del foro, así esa persona se pondría en contacto con migo informando con detalles sobre la situación.
Y si de algo tengo que pedir disculpa es en los errores de ortografía.


Saludos Tor
Ing Electrónico.
Ing Informático.
Volver arriba
Ver perfil de usuario Enviar mensaje privado MSN Messenger
Mensaje    Asunto: Responder citando

César C. Salazar González escribió:
Aun que la opción más correcta es buscar por el foro, debes indicarlo de la siguiente manera, selecciona tus botones (todos a los que requieras "escuchar", cuando presiones click)

En el evento OnClick de los botones seleccionados puedes establecer algo como lo siguiente

Código:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   TButton *pBoton = dynamic_cast<TButton> (Sender);
   ShowMessage("Boton pulsado: "+pBoton->Name);
   pBoton->Font->Size = 20; // modificamos la fuente
}
//---------------------------------------------------------------------------

en este pequeño trozo de codigo, te muestra el nombre del boton que has pulsado, recuerda seleccionar todos tus botones y establecer en el evento OnClick un codigo similar al anterior





Creo que me he explicado mal....
Se trata de ahorrar un moton de codigo Crying or Very sad

El caso es que si tengo que poner el codigo que me has descrito en cada TEdit seria "el mismo perro con distinto collar"
Busco Algo parecido a esto (no se si es posible) supongamos que tengo todos los TEDIT con su propiedad Name igual salvo el indice final

TEdit1->Name=Nombre1
TEdit2->Name=Nombre2
...........
TEditx->Name=Nombrex


y un Procedimiento en el Form Padre de la manera:

Void TFormPadre::CambiarPropiedad (TEdit *edit)
{

edit->Color = 2345;
edit->.....
}

En tiempo de Ejecucion el form recibe un parametro que determinara las propiedades ha modificar

void_fastcall TFormPadre::FormActivate(TObject *Sender,int Param)
{
switch (Param)

case 1:

//lo qu ebusco seria algo parecido a esto


for (int i=1 , i<x, i++)
{
CambiarPropiedad ( [ 'Nombre' + IntToStr(i)] );
}


Osease :Tomar una cadena Afanumerica como identificador (Nombre) de un Objeto

Nota :Estoy abierto a otras Ideas


Gracias[/b]
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Pues Creo que has entendido mal

pues he puesto claramente "Selecciona tus botones todos a los que requieras "escuchar", cuando presiones click)"

vamos por partes y espero que ahora si se entienda

1.- Selecciona todos lo botones.
2.- cuando tengas seleccionados TODOS los botones, te vas a "Object Inspector" buscas el evento OnClick y ASEGURATE que sigas teniendo seleccionados todos los botones, estableces el codigo de la siguiente manera usando TU funcion y debe trabajar correctamente

Código:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   TButton *pBoton = dynamic_cast<TButton*> (Sender);
   CambiarPropiedad ( pBoton );
}
//---------------------------------------------------------------------------


lo que estamos haciendo es redireccionar TODOS los eventos OnClick de cada boton en UNO solo...

a eso me referia con seleccionar todos tus botones, y establecer en un solo OnClick lo que deseas.

nota: aqui no existen "macros" como clipper o Fox que anteponias el nombre de ellas usando el caracter &

variable = "Boton"+&numero

ahora que si no te vale el codigo anterior, puedes usar el siguiente para buscar de manera secuencial un poco mas tardado, pero funcionable al boton que quieres modificar, esto puede ir en tu funcion

Código:
   int control = 0;
   while(control < this->ComponentCount)
   {
      Application->ProcessMessages();
      // Buscamos por los controles
      if (this->Components[control]->InheritsFrom(__classid(TButton)))
      {
         Application->ProcessMessages();
         TButton *pBoton = dynamic_cast<TButton*>(this->Components[control]);
         if(pBoton->Name = "nombre de tu boton")
         {
            CambiarPropiedad ( pBoton );
         }
      }
      control++;
   }

_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

Gracias por contestar

Tu respuesta me ha dado la luz.


"La Ignorancia es una enfermedad que se cura preguntando" R.G Wink
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.