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 03-12-2007
Avatar de pborges36
pborges36 pborges36 is offline
Miembro
 
Registrado: oct 2004
Ubicación: Argentina
Posts: 192
Poder: 20
pborges36 Va por buen camino
Como saber la posicion del form padre

Holas. Tengo una consulta un tanto sencilla. Tengo una form el cual uso para cargar el detalle de factura, remito, etc. Para todo es el mismo form. Ahora bien, quiero que se abra en una determinada posicion respecto del form padre. Hice lo siguiente:

Código Delphi [-]
procedure TFormCarga.FormActivate(Sender: TObject);
begin
    self.Top:=self.Parent.Top+300;
end;

Pero me da un acces violation justo en esa linea.
Espero se entienda. Saludos.
Responder Con Cita
  #2  
Antiguo 03-12-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Tal vez no asignes al formulario como "padre" del que quieres mostrar. Si lo estás creando tal que así:

Código Delphi [-]
Form2 := TForm2.Create(Self);

"Self" no será el padre de "Form2", sino su "dueño". Dicho esto... creo que puedes "tirar" de la propiedad "Owner" del formulario que quieres mostrar. Puesto que este sí sería, en este caso, el formulario "dueño" del que quieres mostrar.

Por supuesto, puedes asignar el padre del formulario tras crearlo:

Código Delphi [-]
Form2 := TForm2.Create(Self);
Form2.Parent := Self;

Y también crearlo tal que así, aunque, no sé qué consecuencias exactamente implica esto:

Código Delphi [-]
Form2 := TForm2.CreateParented(Self);

Y tampoco recuerdo si de este modo habrías de proporcionar más bien el "Handle" de "Self".
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 03-12-2007
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Respectoa al AccessViolation debe ser porque no está correctamente cargado alguno de los forms implecados, pero no me queda claro a que te refieres con "determinada posición respecto al form padre"... te refieres a centrada?, un poco a la izquierda y abajo. De todos modos, cuando llamas a Parent puede estarse refieriendo a la aplicación, debes tener certeza de que asignas correctamente el form padre al momento de crear el formulario.
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #4  
Antiguo 07-12-2007
Avatar de pborges36
pborges36 pborges36 is offline
Miembro
 
Registrado: oct 2004
Ubicación: Argentina
Posts: 192
Poder: 20
pborges36 Va por buen camino
Holas, gracias por las respuestas. Como se me complicaba un poco de esa forma hice lo siguiente:
en el form padre
Código Delphi [-]
hijo:=Thijo.Create(self);
hijo.newtop:=300;
hijo.showmodal;

hijo tiene la propiedad position=poMainFormCenter

y en el codigo del hijo:

Código Delphi [-]
Public
  newtop:integer
 
 
procedure Thijo.FormActivate(Sender: TObject);
begin
     if newtop<>0 then
       self.top:=newtop;
 
end;

Muchas gracias por la ayuda. Saludos
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 saber la posicion Fila, Columna en un MEMO? bustio Varios 5 28-01-2013 17:56:48
¿Quien es mi Form Padre? gabrio OOP 4 16-10-2007 20:33:06
Enviar datos al form padre ANG4L Varios 9 18-05-2006 00:42:07
¿Como saber el nombre de la variable de un form? fjavier64 OOP 1 04-03-2005 17:29:35
¿Cómo saber si un Form está creado? nesetru Varios 5 09-02-2004 12:59:37


La franja horaria es GMT +2. Ahora son las 12:22:42.


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