Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 31-01-2009
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Thumbs up Recorrer todos los formularios de mi Aplicacion

Hola amigos ,quisas ya este tema ya se a tratado en alguna otra ocacion,pero he buscado en el foro y no he encontrado algo acorde a mis necesidades y al parecer es muy facilito hacerlo.(¡Que malo que soy..!)
Bueno.. ¿como se hace para recorrer todos los formularios de mi aplicacion y poder habilitar o deshabilitar algunos controles(botones)de todos los formularios ?, ya que mis formularios todos la mayoria de ellos tienes casi la misma interfaz y los mismos nombres de componentes, ojo se hacerlo para un formulario, pero no se como hacer para obtener referencias de los demas ya que son Muchos,.
Bueno para un solo form, lo hago asi (digamos que quiero deshabilitar un boton con nombre Button1);
Código Delphi [-]
procedure TForm1.Button4Click(Sender: TObject);
var i:Byte;
begin
    i:=0;
     while ( ido
      begin
       if (Form2.Controls[i] is TButton) and
           ((Form2.Controls[i] as TButton).Name='Button1')then
           (Form2.Controls[i] as TButton).Enabled:=False;
           Inc(i);
      end;

end;
Bueno eso tendria que ser para todos los formularios pero eso es lo que no se como seria,debe haber una forma de tener una lista(array talves)de todos los formularios de la aplicacion (talves usando el objeto Application pero cual metodo?) y asi hacerme un metodo que haga lo que deseo.
Gracias de antemano por su colaboracion....
Saludos a todos...
EDITO: La parte del While no se por no se ve bien parece las etiquetas de la sintaxis para delphi esta un poco mala, he trataodo de editarle y sigue asi, de todas forma lo pongo aqui haber si sale bien:
Código Delphi [-]
while ( i
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7

Última edición por rgstuamigo fecha: 31-01-2009 a las 15:57:35.
Responder Con Cita
  #2  
Antiguo 31-01-2009
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Arrow

Ni modos lo pongo sin sintaxis delphi
Cita:
while ( i<Form2.ControlCount)
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #3  
Antiguo 31-01-2009
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola rgstuamigo,
No tengo Delphi a mano, pero si no me falla la memoria, TApplication tiene una propiedad vectorial llamada Forms. Mediante esta se puede iterar y trabajar con los forms abiertos al momento:

Código Delphi [-]
Application.Forms[0]....;

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #4  
Antiguo 31-01-2009
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Hola Delphius , al parecer no existe esa propiedad que mencionas.
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #5  
Antiguo 31-01-2009
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Perdón, Screen.Forms y con Screen.FormsCount.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #6  
Antiguo 31-01-2009
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Question

Ok Gracias amigo Delphius parece que funciona.
Pero mira la curiosidad que se me pego; ¿que tiene que ver Screen con los Form? a mi parecer la propiedad Forms deberia ser parte del objeto
Application Bueno es cosa de mi nomas.
Otra cosa que me resulto curiosa fue que que el objeto Application tiene una propiedad Components que segun yo lo entendia que suponia que eran todos y absolutamente todos los componentes de la aplicacion ,claro esta por llamarse Application pero al parecer no es asi si no que serian solo los formularios(vaya ¿no?¿quien entiende?) de la aplicasion claro con la excepcion de que el Components[0] no se sabe cual es, pues la unica diferencia que veo entre Screen.FormsCount y Application.ComponentCount seria (segun yo) que el segundo tiene uno mas,es decir aparte de tener todos los formularios tiene uno mas ¿Pero quien es es uno mas?, pues no lo se.
por que ni siquiera se puede saber su nombre ni para que se utiliza.
Yo lo probe con este codigo:
Código Delphi [-]
procedure TForm1.Button8Click(Sender: TObject);
var i:Byte;
begin
 for  i:=0  to Application.ComponentCount-1 do
  begin
  ShowMessage(Application.Components[i].Name);
 end;
end;
Seguro habra algun GURU que nos explique,.
Saludos y muchas gracias....
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #7  
Antiguo 31-01-2009
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por rgstuamigo Ver Mensaje
Seguro habra algun GURU que nos explique,.
Saludos y muchas gracias....
Si, seguro hay un GURU: se llama F1

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #8  
Antiguo 31-01-2009
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Cita:
Si, seguro hay un GURU: se llama F1
Je,je,je,je .
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #9  
Antiguo 31-01-2009
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Bueno, a modo de resumen la explicación simple es esta:

Application.Components[] Mantiene la referencia a todos los forms que existen para la aplicación.

SCreen.Forms[] Lista a todos los forms (descendientes de TForm) que fueron creados y están disponibles en el momento.

Ahora bien, el listado de los forms en SCreen.Forms está dado en función del orden Z, es decir: según como se van abriendo.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como recorrer los todos los QRLabels de un Qreport ??? QuarkBcn Impresión 4 31-10-2007 13:53:42
Recorrer todos los objetos creados de una clase propia mierda OOP 1 25-10-2007 19:52:10
Listar todos los Formularios de mi Apliacion BuenaOnda Varios 5 04-01-2007 14:52:40
Comprobar que todos los formularios de la aplicacion estan cerrados Colgueit OOP 4 14-05-2006 21:30:31
Recorrer todos los registros de una tabla que tengan el mismo campo Sayuri Conexión con bases de datos 3 08-12-2005 16:07:46


La franja horaria es GMT +2. Ahora son las 18:06:31.


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
Copyright 1996-2007 Club Delphi