Ver Mensaje Individual
  #7  
Antiguo 15-06-2016
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Hace tiempo (y la entrada data del 2011) ya hablé sobre este tema de mezclar ambos tipos de formularios en un proyecto VCL.

Una opción que personalmente no me parece mala es utilizar packages como forma de separar conceptualmente las 2 plataformas en los proyectos. En esa entrada se explica cómo hacerlo utilizando packages y directamente, tal y como hace ese componente.

En su día se utilizaba la unit DSharp.Windows.FMXAdapter.pas de Stefan Glienke que os adjunto a este mensaje.

Lo he probado y sigue funcionando bien, salvo que hay que cambiar este código:

Código Delphi [-]
    PlatformWin.SetWindowRect(FForm, RectF(BorderWidth, BorderWidth,
      ClientWidth + BorderWidth, ClientHeight + BorderWidth));

Por este otro, simplemente porque a partir de XE3 el acceso al procedimiento SetWindowRect hay que hacerlo de forma ligéramente distinta.

Código Delphi [-]
var
  WindowService : IFMXWindowService;
begin
  ... 
    WindowService := TPlatformServices.Current.GetPlatformService(IFMXWindowService) as IFMXWindowService;
    WindowService.SetWindowRect(FForm, RectF(BorderWidth, BorderWidth,
      ClientWidth + BorderWidth, ClientHeight + BorderWidth));
...

Por si alguien quiere hacer las pruebas sin necesidad de instalar nada extra, simplemente añadiendo esta unit al proyecto.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita