Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-11-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
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
Cita:
Empezado por LoPiTaL Ver Mensaje
Además, no estoy seguro de si al arrancar la aplicación aparecerían correctamente los paneles sin añadir código en el FormCreate,
Hola.

Si, hay que darle valores iniciales a los paneles ya sea por código o situándolos visualmente. Pero como aclaré en mi mensaje "Para este caso en especial,...", el código no tiene pretenciones de ser una solución global sino una respuesta a un planteo concreto.
Es decir, funciona para cuatro panels que dividen el form exactamente en cuatro partes iguales distribuidas en forma de mosaico y se redimensionan acorde al tamaño del form. Que fué lo que interpreté que buscaba Toni.

Un saludo.

Edito: Para no dejarle a Toni una respuesta incompleta, el órden visual del ejemplo es:

Panel1 - Panel3
Panel2 - Panel4

O desde código:
Código Delphi [-]
...
begin
  Panel1.Top:= 1;
  Panel1.Left:= 1;
  Panel2.Top:= Panel1.Height;
  Panel2.Left:= 1;
  Panel3.Top:=  1;
  Panel3.Left:= Panel1.Width;
  Panel4.Top:= Panel1.Height; 
  Panel4.Left:= Panel1.Width;
end;
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 18-11-2011 a las 18:37:00.
Responder Con Cita
  #2  
Antiguo 18-11-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
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 LoPiTaL.

Estuve probando otra vez con el método CustomAlignPosition (ya que antes no encontré como lograrlo ) y como muchas veces pasa, lo que no salía antes salió después...

Para 4 Panels(propiedad Align = alCustom) en mosaico, redimensionables:
Código Delphi [-]
procedure TForm1.CustomAlignPosition(Control: TControl; var NewLeft, NewTop, NewWidth, NewHeight: Integer; var AlignRect: TRect;
  AlignInfo: TAlignInfo);
begin
  inherited;
  NewWidth  := GetClientRect.Right div 2;
  NewHeight := GetClientRect.Bottom div 2;
  if Control = Panel1 then
  begin
    NewLeft := 1;
    NewTop  := 1;
  end;
  if Control = Panel2 then
  begin
    NewLeft := Panel1.Width;
    NewTop  := 1;
  end;
  if Control = Panel3 then
  begin
    NewLeft := 1;
    NewTop  := Panel1.Height;
  end;
  if Control = Panel4 then
  begin
    NewLeft := Panel1.Width;
    NewTop  := Panel1.Height;
  end;
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 18-11-2011 a las 20:02:54.
Responder Con Cita
  #3  
Antiguo 18-11-2011
Toni Toni is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona - España
Posts: 364
Poder: 24
Toni Va por buen camino
OK, muchas gracias a los dos. Las dos soluciones funcionan perfectamente.
__________________
Saludos,

Bitman
Responder Con Cita
  #4  
Antiguo 18-11-2011
LoPiTaL LoPiTaL is offline
Miembro
 
Registrado: abr 2009
Posts: 168
Poder: 18
LoPiTaL Va por buen camino
Cita:
Estuve probando otra vez con el método CustomAlignPosition
jajaj! Te dejé con la intriga ehh??

Sólo apuntar un detalle más a tu solución (que funciona perfectamente):
Así hay que vigilar el orden de creación de los componentes. Ya que por lo general se crean en este orden Panel1, Panel2, Panel3, Panel4, entonces el método directamente es correcto.
PERO si quisieses poner el Panel2 primero (por el motivo que sea), entonces necesitarías sobreescribir el otro método, OnCustomAlignInsertBefore, para poder indicar, cuando salga la pareja PanelX - Panel2, que quieres que alinee primero el panel2, ya que si no, las instrucciones:

Código Delphi [-]
    NewLeft := Panel2.Width;  //Sustituido Panel1 por Panel2
    NewTop  := Panel2.Height;

no funcionarán, ya que cuando alinea Panel1, Panel2 todavía no tiene el Width y Height que tocan.

Y respondiendo a la pregunta que os estáis haciendo: sí, me ha tocado pelearme muuuuuuuuuchhooooo con estos dos métodos...

Un saludo,
LoPiTaL
Responder Con Cita
  #5  
Antiguo 18-11-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
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
Cita:
Empezado por LoPiTaL Ver Mensaje
Y respondiendo a la pregunta que os estáis haciendo: sí, me ha tocado pelearme muuuuuuuuuchhooooo con estos dos métodos...
Es que generalmente es proporcional: tanto más uno se rompe el coco con un problema, tanto más aprende la mejor forma de solucionarlo...

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 18-11-2011 a las 21:06:27.
Responder Con Cita
  #6  
Antiguo 18-11-2011
Toni Toni is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona - España
Posts: 364
Poder: 24
Toni Va por buen camino
Pues la complicacion no acaba ahi.....este formulario no solo se divide en 4, sino que tiene un TabControl con varios Tabs y estos Tabs se dividen en cuatro (no todos). Pero bueno es mas de lo mismo.

Lo que si que quiero es implementar que al redimensionar el formulario lo haga de forma proporcional, para que las graficas que hay en cada division no se vean feas y mal formadas. A trabajar un poco mas....y el problema es que contra reloj.

Gracias por la ayuda!
__________________
Saludos,

Bitman
Responder Con Cita
  #7  
Antiguo 18-11-2011
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 21
Chris Va por buen camino
No sé desde que versión de Delphi está disponible, pero hay un exelente control para este menester. El TGridPanel. Si tienes alguna de las más recientes versiones de Delphi puedes probarlo a ver si lo tienes.

Saludos,
Chris
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 dividir 1 Drake JAVA 2 27-10-2010 19:05:07
Dividir el detail omy Impresión 7 23-11-2007 22:29:32
Dividir un reporte fedelphi Impresión 2 02-04-2006 19:37:12
dividir una celda en 3... eli.vidal Impresión 5 18-11-2005 14:02:27
Dividir un campo Petolansa Conexión con bases de datos 2 11-08-2005 12:27:55


La franja horaria es GMT +2. Ahora son las 22:29:09.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi