Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-07-2010
Lenny Lenny is offline
Miembro
 
Registrado: jun 2007
Posts: 161
Poder: 17
Lenny Va por buen camino
Question Redimensionar Form fsMDIChild desde código

Buenas Maestros, tengo un pequeño problema, intento redimencionar una ventana fsMDIChild desde código, pero no me deja, me da error, trato de hacerlo de dos maneras:

Clientes.ClientHeight:= 160;
ó
Clientes.Height:= 160;

Me da error, que estoy haciendo mal???

Delphi 2010, ZEOS 7.0.0, MySQL, de antemano gracias!!!
Responder Con Cita
  #2  
Antiguo 30-07-2010
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Te faltó un pequeño dato importantísimo..... ¿Que error te da?...

PD: Tienes intanciado el objeto Clientes ?
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 30-07-2010
Lenny Lenny is offline
Miembro
 
Registrado: jun 2007
Posts: 161
Poder: 17
Lenny Va por buen camino
Question

me da este error:

"Acces violation at address 004CC6BF in module 'JJSoft'. Read of address 0000054"

Intanciada??? a que te refieres??? eso, cualquier dato que falte me avisan...
Responder Con Cita
  #4  
Antiguo 30-07-2010
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Cita:
Empezado por Lenny Ver Mensaje
me da este error:

"Acces violation at address 004CC6BF in module 'JJSoft'. Read of address 0000054"

Intanciada??? a que te refieres??? eso, cualquier dato que falte me avisan...
Viendo el error mis sospechas parecen estar acertadas. Ahora si no comprendes el concepto de Instancia no se como te voy a ayudar.

Supongo:
Clientes es una variable del tipo TClientes, TClientes es una clase heredada de TForm. Ahora Clientes por si sola no deja de ser un puntero tipado a una dirección de memoria, y si esa dirección de memoria no tiene una intancia de TClientes, seguramente producirá una violación de memoria, ya que creerá que en ese espacio hay información de un TCliente pero ese área de memoria puede haber sido ocupada por cualquier otra cosa, o bien puede apuntar a 0 (nil).

Pregunto: ¿En qué momento haces asignas algo a la variable Cliente?.. ¿Solo creas un form a la vez del tipo TCliente?... ¿Si este se destruye limpias la asignación de la variable Clientes?
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #5  
Antiguo 19-09-2010
Avatar de santiago14
santiago14 santiago14 is offline
Miembro
 
Registrado: sep 2003
Ubicación: Cerrillos, Salta, Argentina
Posts: 583
Poder: 21
santiago14 Va por buen camino
Cita:
Empezado por Lenny Ver Mensaje
Buenas Maestros, tengo un pequeño problema, intento redimencionar una ventana fsMDIChild desde código, pero no me deja, me da error, trato de hacerlo de dos maneras:

Clientes.ClientHeight:= 160;
ó
Clientes.Height:= 160;

Me da error, que estoy haciendo mal???

Delphi 2010, ZEOS 7.0.0, MySQL, de antemano gracias!!!
No se si mi post llega en momento apropiado pero supongo que todo se soluciona poniendo:
Código Delphi [-]
//En lugar de poner
Clientes.ClientHeight:= 160;
//Ponemos
Self.ClientHeight:=160;
Yo a esto lo pondría en el evento Show del formulario Clientes, está claro que primero hay que crearlo y luego manipularlo.

No lo he probado pero me parece que con eso bastaría.
Luego podrías buscar por ahí algún manual para entender la Teoría de Objetos.
Bueno, luego me dicen que onda.

Saludos.
__________________
Uno es responsable de lo que hace y de lo que omite hacer.
Responder Con Cita
  #6  
Antiguo 21-09-2010
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 Lenny.

Tál como dice Federico, ese error te sale por que estás intentando usar un recurso que no has asignado, ejemplificando:

Si hacemos la creación el el evento OnShow del MDIForm queda:
Código Delphi [-]
procedure TMDIForm.FormShow(Sender: TObject);
begin
  Clientes:= TClientes.Create(nil);
  Clientes.Show;
end;



Luego de estar creado, podés redimensionarlo como y cuantas veces quieras. Para probar poné un ComboBox en MDIForm, agregale los valores 100,200,300,...N y usá este código en el evento OnChange del Combo:
Código Delphi [-]
procedure TMDIForm.ComboBox1Change(Sender: TObject);
begin
  Clientes.Height:= StrToInt(ComboBox1.Text);
end;





Una forma que se puede inducir el error que mencionas, es cambiando el código de FormShow de este modo:
Código Delphi [-]
procedure TMDIForm.FormShow(Sender: TObject);
begin
  with TClientes.Create(nil) do Show;
end;

Y luego intentar:
Código Delphi [-]
procedure TMDIForm.ComboBox1Change(Sender: TObject);
begin
   Clientes.Height:= StrToInt(ComboBox1.Text); // No!!!! Clientes no es un puntero válido 
end;

En este caso Clientes no ha sido instanciado...


Saludos.

Última edición por ecfisa fecha: 21-09-2010 a las 20:52:57.
Responder Con Cita
  #7  
Antiguo 22-09-2010
Lenny Lenny is offline
Miembro
 
Registrado: jun 2007
Posts: 161
Poder: 17
Lenny Va por buen camino
Talking Muchisimas gracias!!!

SANTIAGO14 y ECFISA, Muchisimas gracias!!! no llegaron tarde, aun tenia ese problema pendiente, muchas gracias por los comentarios, en esto momentos probare lo que me dicen y les cuento, gracias nuevamente.

PD: Acabo de probar lo que me dice SANTIAGO14 y funciona a la perfeccion!!! muchas gracias!!!, ECFISA, estudiare lo que me dices tu, muchas gracias a ambos, un abrazo!!!

Última edición por Lenny fecha: 22-09-2010 a las 18:01:28.
Responder Con Cita
  #8  
Antiguo 22-09-2010
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 Lenny.

Me alegro que te haya servido lo que hemos escrito Federico, Santiago y yo.

Quisiera agregarte que se puede parametrizar la creación y muestra de ventanas MDIChild.

Mirá este procedimiento:
Código Delphi [-]
procedure TMDIForm.CrearChild(ClassForm: TFormClass);
var
  i: Integer;
begin
  for i:= 0 to MDIChildCount do  // Buscamos si está creada
   if Screen.Forms[i].ClassName = ClassForm.ClassName then // ¿ Ya existe ?
   begin
     Screen.Forms[i].WindowState:= wsNormal;  // restaurar
     Screen.Forms[i].BringToFront;            // Traer al frente
     Exit;                                    // Salir;
   end;
  with ClassForm.Create(nil) do Show; // No existe, crearla
end;

Ejemplo de lamada:
Código Delphi [-]
    CrearChild(TMDIChild);

El comportamiento por defecto al cerrarse de los Forms MDIChild, es minimizarse. Por lo que, si querés cerrarlos, deberás incluir esta línea en el evento OnClose de cada MDIChild:
Código Delphi [-]
   Action:= caFree; // Cerrar;
   Nombre_del_form:= nil; // línea opcional, se libera el recurso de inmediato, si no windows lo hará después


Espero que te ayude.

Saludos.

Última edición por ecfisa fecha: 22-09-2010 a las 21:41:27.
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 al redimensionar un form NEG1414 C++ Builder 2 29-11-2008 18:06:20
Salir de Un form fsMDIchild NEG1414 C++ Builder 4 01-11-2008 16:49:41
Redimensionar componentes de un form madmai Varios 2 07-11-2007 11:02:48
Clonar Form (fsMDIChild) ManuelPerez Varios 8 20-09-2007 10:29:57
Scalar Componentes al redimensionar Form jsc Varios 5 26-07-2004 16:50:16


La franja horaria es GMT +2. Ahora son las 08:40:14.


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