Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 21-02-2017
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Desconozco totalmente el framework que comentas, aun asi te comparto mi opinion.

Uno de los paradigmas mas populares es tener el MainForm como comentas y ponerle un TTabControl. Aca un pequeño tutorial


A mi particularmente me gusta ocultar las pestañas, seteando la propiedad TabPosition al valor TTabPosition.None

De este modo la unica forma de navegar es hacerlo programaticamente (es decir, cambiando la propiedad ActiveTab o bien por el indice, usando TabIndex). Nuevamente mi estilo preferido de hacerlo es usando el metodo SetActiveTabWithTransition ya que de este modo se realiza la tipica animacion deslizante y queda mucho mas elegante. Tambien es posible usar descendientes especializados de TAcion, tales como TNextTabAction y TPreviousTabAction

Ejemplo aca

Luego lo que suelo hacer es crear un menu (inspirado en los de las aplicaciones de Google), para esto utilizo TMultiView. Acá hay un ejemplo y si revisas en los ejemplos que vienen con Delphi todavia hay mas. Tipicamente dentro del TMultiView metes botones o un listbox o algo que implemente un menu. Luego conectas cada menu con el TAction que muestra el Frame que corresponda o bien escribes eventos estilo OnClick

Luego lo que sigue es tanto meter TFrames como comentas o si quieres TForms dentro de las pestañas. En Firemonkey tenes gran flexibilidad a la hora de crear controles compuestos, porque cualquier control puede ser contenedor de otros controles. Esto hace posible que puedas meter un Frame entero dentro de un TTabItem. Para hacerlo basta con tener un procedimiento asi, en donde en realidad se puede escribir de esta manera para que sea mas flexible:

Código Delphi [-]
procedure EmbedControl(const Target: TControl; const Parent: TFmxObject);
begin
  while Target.ControlsCount > 0 do
    Target.Children[0].Parent := Parent;
end;

Luego para crear los Form/Frame bajo demanda basta con utilizar propiedades dentro de tu Form principal, de este estilo:

Código Delphi [-]
function GetFrameXXX: TFrameXXX;
begin
  if not Assigned(FFrameXXX) then
  begin
    FFrameXXX := TFrameXXX.Create(Self);
    // incrustar en pestaña correspondiente
    EmbedControl(FFrameXXX, TabControl1.Tabs[Indice]);
  end;

  Result := FFrameXXX;
end;

Si lo que queres es ahorrar memoria al maximo, quiza lo ideal sea realizar la creacion del Frame cuando realizas el cambio de pestaña (es decir, cuando hacen click en el menu, creas el Frame, lo incrustas en la nueva pestaña y luego cambias la pestaña activa) y no mantener variables de instancia

Con respecto al acceso a datos y CRUD, no hay diferencias en cuanto a la programacion multicapas con la VCL. Sigues accediendo al servidor DataSnap a traves de la clase proxy que generan los asistentes (TServerMethodsClient). Lo que quiza si cambia un poco es la presentacion, aunque cosas como LiveBindings (a mi no me gustan mucho) te pueden ahorrar tiempo y hacer la curva de aprendizaje mas amigable
Responder Con Cita
 



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
Crear aplicación multiplataforma con base de datos en la nube cocute Desarrollo en Delphi para Android 12 07-04-2015 10:48:59
¿Como construir un IDE? JXJ Varios 11 12-01-2009 22:59:36
¿Como realizar aplicaciones multiplataforma? burasu Linux 10 21-09-2005 23:12:23
Como construir un cliente IRC JXJ Internet 2 03-05-2005 00:04:10
informacion para construir una aplicacion de tres capas muli Providers 2 23-02-2004 01:22:04


La franja horaria es GMT +2. Ahora son las 08:04: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