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 16-12-2011
glopez glopez is offline
Miembro
 
Registrado: ago 2003
Ubicación: Huelva
Posts: 76
Poder: 21
glopez Va por buen camino
Problema con Array de Foms

Tengo implementado un Array de forms de la siguiente forma

Array_Ventanas : Array [0..Maximo_Ventanas_abiertas] of Tform;

En esta array voy guardando las ventanas que abro desde mi aplicacion, que pueden ser de clientes, proveedores articulos...
Las creo de la siguiente forma:

Array_Ventanas[x] := TFArticulos.Create(Self); // si es un articulo
Array_Ventanas[x] := TFClientes.Create(Self);// si es un cliente
...
El problema que tengo, es que si quiero acceder a por ejemplo a un label que está en todos mis forms (Label1) tengo que hacerlo de la siguiente forma:

TFArticulos(Array_ventanas[x]).Label1.Caption:='Prueba'; // si es un articulo
TFClientes(Array_ventanas[x]).Label1.Caption:='Prueba'; // si es un cliente
...

Es decir tengo que saber que tipo de form está en cada posición del array con lo que tengo un monton de lineas duplicadas.
¿Esto se puede hacer de otra forma utilizando punteros u otro método para simplificar al máximo el código?

Gracias.
Responder Con Cita
  #2  
Antiguo 16-12-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola glopez.

En principio no es necesario que declares un arreglo para los forms, Delphi ya permite acceder a ellos mediante la propiedad vectorial Forms de la clase TScreen.
Código Delphi [-]
// Mostrar los forms
var
  i: Integer;
begin
  for i:= 0 to Screen.FormCount-1 do
    Screen.Forms[i].Show;
...

// para tu caso podrías hacer:
begin 
   TFArticulos(Screen.Forms[1]).Label1.Caption:='Prueba';
...

En cuanto a tu consulta, revisá si te sirve este enlace.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 19-12-2011
glopez glopez is offline
Miembro
 
Registrado: ago 2003
Ubicación: Huelva
Posts: 76
Poder: 21
glopez Va por buen camino
En realidad lo que me quiero ahorrar es tener que poner "TFArticulos(...." para poder acceder a los componentes del Form.
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
Problema con array JULIPO Varios 1 12-03-2009 02:10:30
Array Of bytes [Problema] Ðαяισš Varios 3 31-12-2008 09:22:23
Problema con Array MikyVato Varios 3 28-01-2007 03:00:40
problema con array de componentes nenufer Varios 2 06-06-2006 11:44:28
problema con un array de tipos aram2r OOP 5 08-06-2005 09:54:28


La franja horaria es GMT +2. Ahora son las 04:48:16.


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