Club Delphi  
    Paypal   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 Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #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: 20
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
 


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
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 08:50:57.


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