Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Agregar controles a un contenedor (https://www.clubdelphi.com/foros/showthread.php?t=14002)

senpiterno 07-09-2004 07:19:06

Agregar controles a un contenedor
 
Hola amigos

Me gustaria saber como puedo agregar controles a un contenedor de controles en tiempo de ejecucion, por ejemplo agregar botones o listas a un ScrollBox o Panel. A y como duda adicional, cuantos controles puede soportar un contenedor de estos ??.

De atemano se agradece cualquier ayuda.

jachguate 07-09-2004 07:46:45

Agregar un control es tan sencillo como crear una nueva instancia del control que te interesa y establecer sus propiedades relevantes.

Por ejemplo, con un botón seria algo como:
(un ejemplo dice mas que mil palabras)
Código Delphi [-]
Procedure TForm1.BotonNuevo;

Var
  bt : TButton;

Begin
  bt := TButton.Create(self);
  bt.parent := Panel1;
  inc(FContadorBotones);
  bt.name := 'boton' + IntToStr(FContadorBotones);
  bt.caption := 'pinchame!';
  bt.left := 10;
  bt.top := 20 * (FContadorBotones - 1);
  bt.onClic := TForm1.BotonClick;
end;

El parent es el "contenedor" en donde aparecera el botón. Me he cuidado de asignar un nombre único al botón, que en este caso, disparará el procedimiento TForm1.BotonClick en su evento OnClick. En este caso la definición BotonClick tiene que coincidir con la de TNotifyEvent. Es decir, recibir un parámetro de tipo TObject y pertenecer a una clase.

Luego, la posición, y listo!.

Cita:

cuantos controles puede soportar un contenedor de estos
NO creo que haya un límite teórico muy bajo en delphi, pues todo es manejado en memoria dinámica. Te limitan la memoria de tu equipo, y los recursos del sistema.

Por si las dudas, el indice de la propiedad controls es de tipo Integer, con lo que el límite teórico impuesto por este es de 2,147,483,647 controles. Te aseguro que tu windows morirá mucho antes de esto.. :D:D
Hasta luego.

;)

senpiterno 07-09-2004 19:16:30

Gracias jachguate... me queda muy claro lo de como agregar controles a un contenedor, pero me gustaria que me ayudaras con lo de los eventos que generan estos controles creados dinamicamente, como por ejemplo como crear un array de controles que obedescan todos a un mismo evento, como el onclick por ejemplo....

eduarcol 07-09-2004 20:12:54

Cita:

Empezado por jachguate
Código Delphi [-]
  bt.onClic := TForm1.BotonClick;

Disculpa que me meta, pero esa linea hace exactamente lo que tu quieres, lo unico es que debes haber definido un procedure llamado BotonClick con el parametro (Sender: TObject) dentro del formulario

roman 07-09-2004 20:21:41

Cita:

Empezado por eduarcol
Disculpa que me meta

Más aún. He estado leyendo y releyendo el hilo preguntándome por qué jachguate puso en el ejemplo lo del contador. Tal parece que que se anticipó a la segunda pregunta de sempiterno. ¿Será que finalmente le entraron las clases de adivinación? :eek:

:D :D

// Saludos

jachguate 08-09-2004 02:22:25

Cita:

Empezado por roman
Tal parece que que se anticipó a la segunda pregunta de sempiterno. ¿Será que finalmente le entraron las clases de adivinación? :eek:

:D :D

:o:o:o es que ahora si he asistido... :D

Por cierto que no te he visto por alli... :D

Hasta luego.


La franja horaria es GMT +2. Ahora son las 01:57:59.

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