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
  #1  
Antiguo 14-11-2013
F3niX F3niX is offline
Miembro
NULL
 
Registrado: nov 2013
Posts: 26
Poder: 0
F3niX Va por buen camino
Gracias.

Gracias amigo ya lo había leido,solo quize informar que por lo menos para linux si esta disponible, pero en windows probe compilando con WinApi, Qt, Gtk, y nada dicen que todavía no se ha implementado Qt completamente en windows.

Saludos.
Responder Con Cita
  #2  
Antiguo 29-11-2013
pelecho pelecho is offline
Registrado
 
Registrado: ago 2010
Ubicación: Chaco Paraguay
Posts: 9
Poder: 0
pelecho Va por buen camino
MDI Lazarus en Windows

Hola a todos.
No se si les servira, pero de todos modos lo quiero compartir con Ustedes.

Existe una forma de disimular MDI, colocando por ejemplo en el formulario principal un TPageControl, añadiendo las siguientes rutinas en el formulario:
Código Delphi [-]
function TfrmPrincipal.AbaExiste(NomeAba: string): Boolean;
var
  i: Integer;
  Aba: TTabSheet;
begin
  Result := False;
  for i := 0 to PageControl1.PageCount - 1 do begin
    if PageControl1.Pages[i].Caption = NomeAba then begin
      Aba := PageControl1.Pages[i];
      PageControl1.ActivePage := Aba;
      Result := True;
      break;
    end;
  end;
end;

procedure TfrmPrincipal.CriarAba(clsForm: TForm; Index: Integer);
var
  TabSheet: TTabSheet;
  Form: TForm;
begin
  TabSheet := TTabSheet.Create(Self);
  Form := clsForm;
  if AbaExiste(Form.Caption) then
    Exit;
  with TabSheet do begin
    PageControl := PageControl1;
    Caption := Form.Caption;
    ImageIndex := Index;
  end;
  with Form do begin
    Align := alClient;
    BorderStyle := bsNone;
    Parent := TabSheet;
    Show;
  end;
  PageControl1.ActivePage := TabSheet;
  PageControl1.Visible := True;
end;

procedure TfrmPrincipal.FecharAba(NomeAba: string);
var
  i: integer;
  Aba: TTabSheet;
begin
  for i := 0 to PageControl1.PageCount - 1 do
  begin
    if PageControl1.Pages[i].Caption = NomeAba then
    begin
      Aba := PageControl1.Pages[i];
      Aba.Destroy;
      PageControl1.ActivePageIndex := 0;
//      PageControl1.Pages[i].Destroy;
      break;
    end;
  end;
end;

Para abrir la ventana dentro del TPagecontrol, solo deben colocar la siguiente sentencia:
Código Delphi [-]
CriarAba(frmClientes, 1);

Y para cerrar la ventana, en el boton con el que cierran la ventana:
Código Delphi [-]
    frmPrincipal.FecharAba(frmClientes.Caption);

Para que no se confundan con los X en la parte superior derecha de la ventana, deben agregar alguito mas de codigo. Sino, cierran la ventana principal y con eso salen del sistema.

En el formulario principal (en el OnCloseQuery):
Obs: los parametros de PChar() los declare en constantes, igual que ultimo parametro del mensaje. Aqui los puse para que no les confunda.
Código Delphi [-]
   CanClose := Application.MessageBox(PChar('¿Realmente desea salir del  programa?'), PChar(), MB_YESNO + MB_ICONWARNING +  MB_DEFBUTTON2)=ID_YES;

  if(CanClose)then
    Application.Terminate
  else
    Exit;

En la ventana que se abre dentro del TPageControl deben colocar siguiente codigo:
Código Delphi [-]
procedure frmClientes.FormClose(Sender: TObject; var CloseAction: TCloseAction
  );
var
  b: Boolean;
begin
  b := True;
  frmPrincipal.OnCloseQuery(frmPrincipal, b);

  CloseAction := caFree;
end;

Y eso es todo. Funciona bajo Windows y tambien lo probe bajo Linux Mint 15 y funciona de maravilla.

Espero que les sirve.

Saludos
Responder Con Cita
  #3  
Antiguo 04-03-2014
F3niX F3niX is offline
Miembro
NULL
 
Registrado: nov 2013
Posts: 26
Poder: 0
F3niX Va por buen camino
Probare esto, 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
codigo de lazarus windows a lazarus linux anubis Lazarus, FreePascal, Kylix, etc. 5 20-04-2013 21:33:55
Delphi/Lazarus en pendrive para Windows o Linux. Parche Varios 6 16-09-2008 10:45:52
Compilar proyectos Delphi en Lazarus (windows) gallipi Lazarus, FreePascal, Kylix, etc. 5 21-01-2008 16:58:02
Migrar Aplicacion Lazarus De Ubuntu A Windows volv87 Lazarus, FreePascal, Kylix, etc. 4 26-07-2007 08:03:07
[Lazarus] GTK+-devel en SUSE. problema instalar lazarus de esa libreria. sakuragi Lazarus, FreePascal, Kylix, etc. 3 28-09-2006 03:31:09


La franja horaria es GMT +2. Ahora son las 00:42:03.


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