Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-08-2021
ArtPortEsp ArtPortEsp is offline
Miembro
 
Registrado: may 2018
Ubicación: Mexico
Posts: 151
Poder: 7
ArtPortEsp Va por buen camino
Interfaz de usuario "moderna"

Hola;

Aun estoy con mis primeros pasos en RS (debo confesar que me siento abrumado con el cambio -vengo de D7-)...

Una de las cosas que quiero hacer es darle una vista mas moderna a mis aplicaciones y he estado viendo opciones y ejemplos aquí y allá, creo que la tendencia (perdonen si sueno anticuado) va hacia las pantallas tipo "windows 10", donde un menú deslizante y cambiante esta a la izquierda y la pantalla se presenta a la derecha en un panel.

Queriendo replicar ese comportamiento me enfrento al problema que mis aplicaciones seguían el modelo SDI, es decir tenia un menú con las opciones del sistema y se iban desplegando las formas que el usuario necesitaba (cuantas quisiera tener abiertas).

Por lo que he visto, necesitaría desplegar las pantallas del sistema en un panel o en un pagecontrol o como en un ejemplo que acabo de encontrar (y que aun no entiendo) en el libro DELPHI COOKBOOK, usar una especie de subclase de Tform y tener incorporadas "embeded" las formas en un TabControl (link del código https://drive.google.com/file/d/1REa...ew?usp=sharing)

Ustedes que recomiendan?;

que tal funciona poner todas las pantallas en (Paneles/PageControl)?, parecería que un solo .PAS seria complicado de manejar, sin contar con que el retrabajo de convertir mis aplicaciones a ese modelo es mas complicado.

El ejemplo de Delphi CookBook parece bueno, solo que aun no comprendo su funcionamiento.

(dejo una imagen de como va el desarrollo del nuevo menú de una aplicación pequeña)
Imágenes Adjuntas
Tipo de Archivo: jpg menu.jpg (12,5 KB, 46 visitas)

Última edición por ArtPortEsp fecha: 17-08-2021 a las 19:31:24.
Responder Con Cita
  #2  
Antiguo 19-08-2021
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 913
Poder: 23
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Lo de tener varios TForm dentro de un TPageControl u otro Form es sencillo.

El wndForm principal tendrá un TPageControl

Código Delphi [-]

Procedure TwndForm.CreateForm(FormClass:TFormClass; AParent:TWinControl; AColor:TColor; AFont:TFont);
Begin
     With FormClass.Create(Application) Do
     Begin
          Color      := AColor;   {Color del Form}
          Font       := AFont;   {Fuente del Form}
          BorderIcons:= [];     {Form sin bordes}
          BorderStyle:= bsNone; {Bordes del Form si estilo}
          Align      := alClient; {Form alineado al cliente}
          Parent     := AParent; { Padre del Form}
     End;
End;

procedure TwndForm.PageControlOnChange(Sender:TObject)
begin
        {Si la página activa ya tiene un form creado no debe crear otro}
        if (PageControl.ActivePage.ControlCount<>0) then
           Exit;


       case PageControl.TabIndex of
          0:Begin 
                    CreateForm( TForm1, PageControl.ActivePage, Self.Color, Self.Font);

                    TForm1(PageControl.ActivePage.Controls[0]).Show;
            End;
          1:Begin 
                 CreateForm( TForm2, PageControl.ActivePage, Self.Color, Self.Font);

                 TForm2(PageControl.ActivePage.Controls[0]).Show;
            End;
       end;

end;

Espero te oriente en lo que deseas realizar.

Saludos cordiales
Responder Con Cita
  #3  
Antiguo 19-08-2021
ArtPortEsp ArtPortEsp is offline
Miembro
 
Registrado: may 2018
Ubicación: Mexico
Posts: 151
Poder: 7
ArtPortEsp Va por buen camino
Cita:
Empezado por cloayza Ver Mensaje
Lo de tener varios TForm dentro de un TPageControl u otro Form es sencillo.

El wndForm principal tendrá un TPageControl

Código Delphi [-]

Procedure TwndForm.CreateForm(FormClass:TFormClass; AParent:TWinControl; AColor:TColor; AFont:TFont);
Begin
     With FormClass.Create(Application) Do
     Begin
          Color      := AColor;   {Color del Form}
          Font       := AFont;   {Fuente del Form}
          BorderIcons:= [];     {Form sin bordes}
          BorderStyle:= bsNone; {Bordes del Form si estilo}
          Align      := alClient; {Form alineado al cliente}
          Parent     := AParent; { Padre del Form}
     End;
End;

procedure TwndForm.PageControlOnChange(Sender:TObject)
begin
        {Si la página activa ya tiene un form creado no debe crear otro}
        if (PageControl.ActivePage.ControlCount<>0) then
           Exit;


       case PageControl.TabIndex of
          0:Begin 
                    CreateForm( TForm1, PageControl.ActivePage, Self.Color, Self.Font);

                    TForm1(PageControl.ActivePage.Controls[0]).Show;
            End;
          1:Begin 
                 CreateForm( TForm2, PageControl.ActivePage, Self.Color, Self.Font);

                 TForm2(PageControl.ActivePage.Controls[0]).Show;
            End;
       end;

end;

Espero te oriente en lo que deseas realizar.

Saludos cordiales
Muchas gracias cloayza!, (aunque supongo es una pregunta obvia) cual seria la diferencia en hacerlo con un TTabcontrol?, cual opción es mejor?
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
Cómo establecer la opción "Usuario no puede cambiar contraseña" fide_uci API de Windows 1 28-04-2011 02:29:55
"De La Servidumbre Moderna" rretamar La Taberna 6 14-01-2010 19:17:52
Permisos del "usuario seguro" para Firebird Server rolandoj Firebird e Interbase 0 25-09-2008 14:10:18
Componente Active X "Interfaz no compatible" wuepe Varios 1 02-02-2008 00:19:11
Un usuario logra validar Ubuntu como "Windows auténtico" ArdiIIa La Taberna 0 18-06-2007 20:17:00


La franja horaria es GMT +2. Ahora son las 06:24:47.


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