Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > Lazarus, FreePascal, Kylix, etc.
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #21  
Antiguo 05-09-2012
Avatar de mightydragonlor
[mightydragonlor] mightydragonlor is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Medellín-Colombia
Posts: 587
Poder: 18
mightydragonlor Va por buen camino
Lo puedes hacer perfectamente con Frames y paneles, así que cuando requieras creas el frame en el panel deseado.
__________________
mas confundido que Garavito el día del Niño.
Responder Con Cita
  #22  
Antiguo 05-09-2012
sebamawa sebamawa is offline
Miembro
NULL
 
Registrado: ago 2012
Posts: 18
Poder: 0
sebamawa Va por buen camino
Hola a todos.
Creo que encontré una muy buena alternativa a los que buscan formularios contenidos en uno principal al estilo MDI.
Usando un panel sobre el Form principal, se cargan los restantes Forms sobre el Panel y así se obtiene el resultado buscado. El video lo muestra en Delphi, pero ya está probado en Lazarus por mi.
Pueden verlo aquí http://www.youtube.com/watch?v=0VnPR4HHGTU
Saludos.

Última edición por sebamawa fecha: 05-09-2012 a las 09:01:19. Razón: Actualización
Responder Con Cita
  #23  
Antiguo 05-09-2012
daragor daragor is offline
Miembro
NULL
 
Registrado: ago 2012
Posts: 91
Poder: 12
daragor Va por buen camino
En definitiva creo q frames, paneles.. cumplen con el objetivo. Igual a lazarus le falta esto.. una ventana contenedora. Gracias por el interes sebamawa
__________________
Mi Blog: Webscom (Software libre)
Responder Con Cita
  #24  
Antiguo 05-09-2012
sebamawa sebamawa is offline
Miembro
NULL
 
Registrado: ago 2012
Posts: 18
Poder: 0
sebamawa Va por buen camino
Cita:
Empezado por daragor Ver Mensaje
En definitiva creo q frames, paneles.. cumplen con el objetivo. Igual a lazarus le falta esto.. una ventana contenedora. Gracias por el interes sebamawa
Es así, ya no hay mucho que hacer, inclusive la última alternativa que publiqué, si bien visualmente está bien, el comportamiento de los Forms contenidos no es el ideal al maximizarlos o minimizarlos.
Habrá que adaptarse a no usar ventanas MDI.
Ahora, una pregunta al compañero daragor. ¿Puedes explicarme el órden en que usas los componentes para lograr el efecto que muestras en la imagen anterior que publicaste (Artículos, Compras, Ventas...)?. Pues distingo paneles, frames y menús, pero no logro obtener el efecto de que cuando se elige un item (por ejemplo artículos) se muestre el panel - frame correspondiente.
Saludos.

Última edición por sebamawa fecha: 05-09-2012 a las 19:19:46. Razón: Actualización
Responder Con Cita
  #25  
Antiguo 05-09-2012
daragor daragor is offline
Miembro
NULL
 
Registrado: ago 2012
Posts: 91
Poder: 12
daragor Va por buen camino
Compañero seba, como no... primero no uso paneles, por lo mismo que dijiste vos, es mas complicado con el tema forms en cuanto al diseño. Asi que solo estoy usando TPageControl, con las paginas necesarias (articulos, compras,ventas,etc.) dentro de cada pagina pongo un frame, ese frame esta creado aparte, con todos los objetos y procedimientos necesarios para por ejemplo un ABM de articulos. Incluso con los valores SQL, conexion, transicion, y datasource y querys que vaya a usarse. Cuando ejecutas ves el form principal voy navegando por las paginas. Pense en un menu para otras cosas, que si podrian ser forms volando por ahi.. un login, un manejo de mysql, etc. Espero me entiendas...



Saludos
__________________
Mi Blog: Webscom (Software libre)

Última edición por daragor fecha: 05-09-2012 a las 22:30:00.
Responder Con Cita
  #26  
Antiguo 06-09-2012
sebamawa sebamawa is offline
Miembro
NULL
 
Registrado: ago 2012
Posts: 18
Poder: 0
sebamawa Va por buen camino
Gracias daragor por la información, hasta cualquier momento.
Saludos.
Responder Con Cita
  #27  
Antiguo 06-09-2012
Avatar de mightydragonlor
[mightydragonlor] mightydragonlor is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Medellín-Colombia
Posts: 587
Poder: 18
mightydragonlor Va por buen camino
Yo uso TFrames, sólo que los creo en tiempo de ejecución con el TPanel como padre, y todo el código lo manejo en el TFrame.
__________________
mas confundido que Garavito el día del Niño.
Responder Con Cita
  #28  
Antiguo 06-09-2012
sebamawa sebamawa is offline
Miembro
NULL
 
Registrado: ago 2012
Posts: 18
Poder: 0
sebamawa Va por buen camino
Cita:
Empezado por mightydragonlor Ver Mensaje
Yo uso TFrames, sólo que los creo en tiempo de ejecución con el TPanel como padre, y todo el código lo manejo en el TFrame.
Hola mightydragonlor.
Pero cómo haces para manejar los paneles, por ejemplo maximizar o minimizar ventanas con ellos, usar menús, etc?
Puedes plantear un ejemplo?
Saludos.

Última edición por sebamawa fecha: 06-09-2012 a las 07:11:57. Razón: Actualización
Responder Con Cita
  #29  
Antiguo 06-09-2012
Avatar de mightydragonlor
[mightydragonlor] mightydragonlor is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Medellín-Colombia
Posts: 587
Poder: 18
mightydragonlor Va por buen camino
Nunca hago nada de eso, si necesito una ventana, pues uso una ventana, todo depende del look que le quiera dar a mi aplicación, pero en definitiva, nunca he usado formularios MDI, me parece que son horribles, ademas, para eso están las ventanas modales, Tabs, Notebook, paneles y demás, ahora si lo que quieres es que un panel pueda cambiar de tamaño y pocisión, no es muy dificil.
Código Delphi [-]
procedure TPanel.MouseDown(Button: TMouseButton; Shift: TShiftState; X,
  Y: Integer);
begin
  inherited MouseDown(Button, Shift, X, Y);
  lastPos := ClientToScreen(point(X,Y));
  isMouseDown := true;
end;

procedure TPanel.MouseMove(Shift: TShiftState; X, Y: Integer);
var
  diff,newPos:TPoint;
  newRect:TRect;
begin
  inherited MouseMove(Shift, X, Y);
  newPos := clientToScreen(point(X,Y));
  if isMouseDown then begin
    diff.x := newpos.x-LastPos.x;
    diff.y := newpos.y-LastPos.y;
    if panelMode in [pmMoveSelf] then
    begin
      newRect := BoundsRect;
      OffsetRect(newRect, diff.x, diff.y);
      BoundsRect := newRect;
    end else begin
      newRect := parent.BoundsRect;
      case panelmode of
        pmMoveSelf: OffsetRect(newRect, diff.x, diff.y);
        pmMoveParent: OffsetRect(newRect, diff.x, diff.y);
        pmResizeParent:
        begin
          inc(newRect.right,diff.x);
          inc(newRect.bottom,diff.y);
        end;
        pmResizeParentLeft:   inc(newRect.left,diff.x);
        pmResizeParentRight:  inc(newRect.right,diff.x);
        pmResizeParentTop:    inc(newRect.top,diff.y);
        pmResizeParentBottom: inc(newRect.bottom,diff.y);
      end;
      parent.BoundsRect := newRect;
    end;
  end;
  LastPos := newPos;
end;

procedure TPanel.MouseUp(Button: TMouseButton; Shift: TShiftState; X,
  Y: Integer);
begin
  inherited MouseUp(Button, Shift, X, Y);
  IsMouseDown := false;
end;

{$R *.lfm}

{ TForm1 }

procedure TForm1.FormDblClick(Sender: TObject);
begin
  application.Terminate;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  wLeft.PanelMode := pmResizeParentLeft;
  wright.PanelMode := pmResizeParentRight;
  wTop.PanelMode := pmResizeParentTop;
  wBottom.PanelMode := pmResizeParentBottom;

  panel1.PanelMode := pmMoveSelf;
  panel2.PanelMode := pmResizeParent;
  panel3.PanelMode := pmMoveParent;
  Self.DoubleBuffered:=True;
end;
Esto debería servirte.
__________________
mas confundido que Garavito el día del Niño.
Responder Con Cita
  #30  
Antiguo 06-09-2012
sebamawa sebamawa is offline
Miembro
NULL
 
Registrado: ago 2012
Posts: 18
Poder: 0
sebamawa Va por buen camino
Gracias mightydragonlor, hace poco que uso Lazarus y todo tipo de idea nueva es bienvenida.
Saludos.

Última edición por sebamawa fecha: 06-09-2012 a las 18:14:08. Razón: ...
Responder Con Cita
  #31  
Antiguo 05-10-2012
pedrolazarus pedrolazarus is offline
Miembro
NULL
 
Registrado: sep 2012
Posts: 91
Poder: 12
pedrolazarus Va por buen camino
Me intera mucho este tema, yo lo que hago es crear los formularios y los oculto y cuando los necesito los vuelvo a mostrar

form.hide

form.show

Pero esto no se si es lo correcto.
Responder Con Cita
  #32  
Antiguo 05-10-2012
Avatar de mightydragonlor
[mightydragonlor] mightydragonlor is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Medellín-Colombia
Posts: 587
Poder: 18
mightydragonlor Va por buen camino
Cita:
Empezado por pedrolazarus Ver Mensaje
Me intera mucho este tema, yo lo que hago es crear los formularios y los oculto y cuando los necesito los vuelvo a mostrar

form.hide

form.show

Pero esto no se si es lo correcto.
Sin importar si es lo correcto o no, lo que importa es que te sirva, si es cuestión de mejorar el rendimiento y consumir menos recursos, lo mejor es crear y destruir los formularios conforme los vas necesitando.

Saludos.
__________________
mas confundido que Garavito el día del Niño.
Responder Con Cita
  #33  
Antiguo 15-06-2013
pedrolazarus pedrolazarus is offline
Miembro
NULL
 
Registrado: sep 2012
Posts: 91
Poder: 12
pedrolazarus Va por buen camino
Pues yo en ves de Utilizar el panel como el ejemplo del Compañero sebamawa Pues decidi utilzar el mismo Form1 y de hecho se abre el form2 dentro del form1 pero cuando el form2 o hijo se maximiza (en el caso de ser mas pequeño q el form padre) queda como una imagen mezclada (no se si es a mi que me pasa o que)


Dejo el codigo, y para que quede el form hijo centrado en la propiedad position colocar poMainFormCenter

Ahora si el form hijo se inicia maximizado no hay problema
Archivos Adjuntos
Tipo de Archivo: rar Form MDI prueba.rar (123,9 KB, 3 visitas)
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
Mostrar una ventana "Inicializando" mientras se crean las Forms mancurnino Varios 6 08-05-2008 00:50:00
Ventana hija en un marco (Frame o Panel) de la ventana padre birmain Varios 2 14-10-2007 09:27:56
Iniciar aplicación con ventana no principal adebonis Varios 5 13-09-2007 18:56:47
Forms contenidos en el principal lafirma OOP 2 29-03-2004 19:38:26
evento de cerrar la ventana principal ronson Varios 1 25-02-2004 13:03:06


La franja horaria es GMT +2. Ahora son las 23:13:43.


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