PDA

Ver la Versión Completa : Problema al redimensionar un form


NEG1414
29-11-2008, 10:36:56
Buenas, mi problema es el siguiente:

Desde un Form1 accedo a otro Form2 mediante la forma modal:


TForm2 * prueba;

prueba = new TForm2(this);

//Mostramos el Formulario como modal
switch (prueba->ShowModal())
{
case mrOk:
break;
}

En el evento Activate del Form2 (dependiendo de una condicion)este debe de redimensionarse (hacerse mas pequeño),

Form2->Height =xxx

pero no lo hace.

Supongo que tiene que ver con el acceso modal pero no consigo solucionarlo
Alguna Idea.


Gracias

coso
29-11-2008, 14:57:19
Hola, lo que ocurre es que no estas cambiando la nueva instancia de TForm2, sino la generada por defecto que tiene por nombre Form2. Prueba : self->Height = xxx o directamente Height = xxx. Ten en cuenta que si no vas a usar 'Form2' (la form autocreada) deberias sacarla del 'autocreate forms'. Saludos.

escafandra
29-11-2008, 18:06:20
cHola, lo que ocurre es que no estas cambiando la nueva instancia de TForm2, sino la generada por defecto que tiene por nombre Form2. Prueba : self->Height = xxx o directamente Height = xxx. Ten en cuenta que si no vas a usar 'Form2' (la form autocreada) deberias sacarla del 'autocreate forms'. Saludos.

Efectivamente tienes toda la razón coso. Deve diseñar Form2 como no autocreada. Aún así su código funcionaría de esta forma: Cambia esto

En el evento Activate del Form2 (dependiendo de una condicion)este debe de redimensionarse (hacerse mas pequeño),

Form2->Height =xxx;

Por esto
this->Height =xxx; // en C this es equivalente al self del delphi
// o también
Height =xxx;

De esta forma te das cuenta del error que te dice coso.
Lo suyo es que lo quites de autocreado y lo crees diámicamente como haces con tu código (prueba).

Saludos.