PDA

Ver la Versión Completa : Una variable que apunta a dos objetos


mlara
08-12-2004, 23:35:15
Veámoslo así:

Tengo dos formas: fUno y fDos en dos unidades Uno.pas y Dos.pas.

En otra unidad tengo algo como esto:


case TalCosa of
0:
with fUno do begin
.
.
.
// esto son como 100 líneas de código
.
.
.
end;
1:
with fDos do begin
.
.
.
// estas líneas de código son idénticas a las de arriba.
.
.
.
end;
end;


Esto lo hago porque quice evitarme hacer modificaciones a todos los componentes de una forma para cambiarle el estilo. Obviamente no es nada elegante repetir todo un fragmento de código. Intenté crear una variable y hacer algo como esto:


case TalCosa of
0:
Variable := fUno;
1:
Variable := fDos;
end;
with Variable do begin
.
.
.
// las líneas de código
.
.
.
end;


, pero no me funciona. Alguien quizás haya trabajado algo parecido? Gracias.

vic_ia
09-12-2004, 00:00:11
hola...

de que tipo has definido la variable "variable" en tu codigo...???

saludos...

roman
09-12-2004, 01:54:46
pero no me funciona. Alguien quizás haya trabajado algo parecido?


¿Parecido a qué? No tenemos ni idea de qué estás haciendo pues ni siquiera nos dices qué es lo que no te funciona.

Lo único que se puede decir es que si fUno y fDos son instancias de dos formularios distintos entonces no puedes usar una misma variable para acceder a sus componentes ya que éstos serán distintos. Si, por otro lado, fUno y fDos sin dos instancias del mismo formulario, habría que empezar por ver, como ya te preguntó vic_ia, de qué tipo es Variable y qué exactamente es lo que no funciona.

Pero por otro lado, si son instancias del mismo formulario entonces da la impresión de que la rutina (las 100 líneas de código) deberían ser parte del formulario en sí y no algo externo.

// Saludos

Neftali [Germán.Estévez]
09-12-2004, 10:35:05
...pero no me funciona
¿Y que te dice?

Al González
09-12-2004, 17:02:03
¡Buen día a todos!

Hola Mlara:

Según parece, la solución sería utilizar una plantilla: una forma con las propiedades y componentes que son comunes, y dos formas derivadas de esa plantilla.

Entonces podrías usar un Case como el que mencionaste.

De cualquier manera te agradecería que nos ampliaras un poco más el panorama. Recuerda que la calidad de una respuesta es directamente proporcional a la calidad de la pregunta ;).

Al González. :)

mlara
10-12-2004, 04:53:41
Eyyy muchas gracias por sus respuestas... Desafortunadamente no puedo ampliar la pregunta ya que debo salir de inmediato por unos días. Al regreso amplio el panorama.

Gracias.