Acceder a componentes creados en ejecución
Tengo un Form creado en ejecución con varios componentes, entre ellos un TComboBox, unTEdit y un TButton. Quiero que el botón seleccione un elemento del Combo y lo pase al TEdit.
Si puedo acceder al botón, pero no consigo acceder al dato del Combo y pasarlo al TEdit. Saludos. bulc |
Si lo creas en ejecución, guarda una referencia al control creado
fEdit : TEdit; ... fEdit:= TEdit.Create(Form1); ... y antes de hacer algo, te aseguras que está asignado if (fEdit <> nil) , o if Assigned(fEdit ) Otra forma podría ser asignar la propiedad Tag con un identificador único, y escribes una función que te sirva para localizar un componente del form pasando el Tag como parámetro. |
Hola.
Sinceramente no sé si entendí bién la situación... Pero a ver, si el problema radica aquí entonces el caso es que: Edt_Tema de tipo TEdit y CBox de tipo TComboBox son variables locales del método Button1Click y para usarlas desde el método Btn_Tema podrías:
1. 2. 3.
Saludos :) |
He probado con FindComponent
Y no he ha servido. Las variables no eran asignadas. No estaban accesibles...
Luego he declarado las variables componente: - Var Edt_Tema : TEdit, CBox : TComboBox ... como Private y ha ido perfectamente. Ya puedo acceder desde el evento del botón Btn_TemaClick a todos los componentes. Y mira que le había dado vueltas a la cosa. Intentaba pasar los componentes Edi_Tema, CBox como parámetros. Iba muy perdido. Maravillado de la sencillez de la respuesta te doy las gracias más efusivas. Saludos. Bulc |
Hola.
Si el nombre que le asignaste en la creación del componente (y fué creado) es el mismo que usas como argumento del método FindComponent funcionará, te lo aseguro. Pero también coincido en que cualquiera de los dos primeros modos es mucho mas simple y más eficiente que ese, ya que sólo se trata de ampliar el ámbito de las variables en cuestión. Saludos y me alegro mucho que lo solucionaras :) |
Sí, lo he solucionado
He puesto los componentes del Form dinámico dentro del apartado Private y ha funcionado a la primera.
De ese modo los componentes quedan accesibles al código del botón creado con ese Form dinámico. No pongo código por haberlo puesto antes. Saludos y muchas gracias al personal y foreros. bulc |
La franja horaria es GMT +2. Ahora son las 00:14:10. |
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