![]() |
saber el nombre de un control creado en tiempo de ejecucion
hola a todos: tengo varios controles creados en tiempo de ejecucion, me preguntaba como puedo saber el nombre del mismo, o si en un momento dado delphi no le asigna alguno para poderle seguir la huella.
gracias de antemano.:D |
Hombre, se supone que creas el objeto asignandoselo a una variable de ese tipo para, como minimo, poder liberarlo despues, no? Pues solo tienes que acceder a esa variable
Código:
|
Si queres el "nombre" lo tenes aqui:
Código:
Var ;) |
hola gracias por las respuestas, el problema que yo tengo es que cada vez que preciono un boton crea otro en tiempo de ejecucion y asi sucecivamente, puedo llegar a tener hasta 10 botonones pero todos tinene el mismo nombre como puedo hecer para crear la variable independiente para cada uno de ellos, y así cada boton sea independiete en tiempo de ejecucion, por eso preguntaba si delphi le asignaba algun nombre interno para no perderle la huella.:o
|
Hola xxxlincexxx, una aclaración, ¿todos los botones los creas a partir de hacer clic en el primero o haciendo clic en cada botón creado se crea el siguiente? Para mi es importante saberlo para tratar de ayudarte.
Saludos |
O puedes cargarlos en un array / TList, o puedes utilizar su contenedor y/o dueño para acceder a estos.
Puedes ver las primeras respuestas de este hilo http://www.clubdelphi.com/foros/show...&threadid=2477 Saludos! |
Gracias por estarme ayudando y les agradesco su paciencia esta es la parte de mi codigo:
var boton:Array [0..x valor] of TBooton; n:Integer; begin n:=n+1; Boton[n]:=Tbooton.create; broton[n].parent:=Self boton[n].onclick:=otro procedimiento; end; de esta manera he creado en tiempo de ejecucion varios botones con un solo boton inicial; mi problema es como puedo reconocer sobre cual boton se llevo acabo el evento on click; pero no tengo ni idea de como hacerlo; he pensado en recorrer cada uno de los sub indices de array, pero no encuentro manera de identificar cual fue el que recibio el evento. :confused: |
Puedes compararlo contra el Sender del evento, o bien utilizar directamente el Sender del evento para hacer lo que deseas!
Saludos! |
Hola:
Puedes hacer varias cosas, como asignar el nombre del botón, nada más crearlo, o bien asignarle a su propiedad tag (que para este tipo de trucos está), el número de botón: Código:
var |
Hola amigo
Acerca de si delphi coloca nombres a los componentes por defecto,.... te cuento que si lo hace, a menos que nosotros no se lo asignemos. Por ejemplo en el caso de los botones, delphi asigna así: button1, Button2,..... Button_n. Para tus otras dudas el codigo siguiente seguro te va a servir... uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,StdCtrls; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private { Private declarations } procedure ClickEnUnBoton(Sender: TObject); public { Public declarations } end; var Form1: TForm1; Incremento:Integer=0; implementation {$R *.DFM} procedure TForm1.ClickEnUnBoton(Sender: TObject); begin with (Sender As TButton) do Top:=Top+Height+10; if (Sender As TButton).Top>100 then with (Sender As TButton) do Top:=10; end; procedure TForm1.FormCreate(Sender: TObject); var j: Integer; begin for j:= 0 to 5 do begin with TButton.Create(Form1) do begin Parent:=Form1; Top:=10; Left:=10+Incremento; Incremento:=Incremento+Width+10; Caption:='Botón'+IntToStr(j); Name:='MiNombre'+IntToStr(j); OnClick:= ClickEnUnBoton; end; end; end; end. Seguro esto te ayudara en lo que necesitas, solo correlo y ya está Suerte..... |
Gracias: ya lo probe y funciono, sin su ayuda no lo hubiera logrado.
|
La franja horaria es GMT +2. Ahora son las 04:33:14. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi