Ir al contenido


Foto

Acceder a componente en MainForm


  • Por favor identifícate para responder
7 respuestas en este tema

#1 Desart

Desart

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 715 mensajes
  • LocationEspaña

Escrito 05 mayo 2009 - 10:13

Hola compañeros, estoy trabajando en un nuevo componente, pero para su uso necesito previamente otro componente que esta casi terminado, ahora el problema que se me presenta, es el siguiente, quiero poner en el form principal un componente de enlace con varias funciones y atravéz del código



delphi
  1. Applicaton.Mainform._______



Accedo a las propiedades del Form, incluso al control (Componentes), pero atravéz de su index. Lo que quiero es poder acceder por código directo sin tener que controlar el index. Espero haberme explicado
  • 0

#2 cHackAll

cHackAll

    Advanced Member

  • Administrador
  • 599 mensajes

Escrito 05 mayo 2009 - 10:31



delphi
  1. (FindComponent('Button' + IntToStr(1)) as TButton).Hide;


  • 0

#3 Desart

Desart

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 715 mensajes
  • LocationEspaña

Escrito 05 mayo 2009 - 10:35

Chacal muy buen ejemplo, pero lo que busco es la manera de acceder al componente directamente sin busquedas, para hacer un componente de enlace o mcajon de herramientas, en el que se apoyaran a posteriori otros componentes, pero sólo en el fom principal y no en cada form que lo necesites.
  • 0

#4 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4.107 mensajes
  • LocationMadrid - España

Escrito 06 mayo 2009 - 12:14

No se si entiendo bien lo que quieres, pero tienes la variable Controls



cpp
  1. for(int n=0; n<MainForm->ControlCount; n++){
  2.     // Enumerando todos los controles de un contenedor
  3.     MainForm->Controls[n];  // Cada control.
  4.   ...................
  5. }



Saludos.
  • 0

#5 Desart

Desart

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 715 mensajes
  • LocationEspaña

Escrito 06 mayo 2009 - 11:32

Creo que no se ha entendido, lo que quiero hacer, procuro ser más explicito. El componente, que deseo desarrollar, tendra muchos parametros que controlar, como son colores del form de los grid, un timer, ademas de otras muchas utilidades ¿que no se si funcionarán?, debe de introducirse en el form principal, (como ejemplo imaginar  un componente Skin, se introduce en el form principal y desde cualquier form puedes acceder a el y sus propiedades y eventos) las llamadas deben ser tipo APPLICATION.MAINFORM.ENLACE.FORMCOLOR:=Clblue;  donde enlace es el componente y FormColor una propiedad Tcolor, si debo buscarla en controls desde cualquier form ya no tendria la misma utilidad, pero es sólo un proyecto.
  • 0

#6 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4.107 mensajes
  • LocationMadrid - España

Escrito 06 mayo 2009 - 11:44

...si debo buscarla en controls desde cualquier form ya no tendria la misma utilidad...

Pues no tienes otra forma de hacerlo, o los enumeras en el array Controls, para luego filtrar los componentes sobre los que actúa el tuyo, o creas tu un array de componentes como miembro de tu componente que haga esa función, cosa superflua pues cada formulario tiene su array Controls.  ;)

Saludos.
  • 0

#7 Desart

Desart

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 715 mensajes
  • LocationEspaña

Escrito 06 mayo 2009 - 11:56

Gracias escafandra peo creí­a que se podrí­a hacer algo dentro De Tapplication, seguiré buscando un poco más pero gracias por tu ayuda.
  • 0

#8 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4.107 mensajes
  • LocationMadrid - España

Escrito 06 mayo 2009 - 01:04

Y desde TApplication.MainForm.Controls alcanzas todos los controles del formulario principal *-)

Saludos.
  • 0




IP.Board spam blocked by CleanTalk.