AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

FMX:OpenGL-Panel oder Layout in 2D Formular

Ein Thema von luisk · begonnen am 1. Jul 2016 · letzter Beitrag vom 6. Jul 2016
 
Benutzerbild von luisk
luisk

Registriert seit: 18. Mär 2009
402 Beiträge
 
#8

AW: FMX:OpenGL-Panel oder Layout in 2D Formular

  Alt 2. Jul 2016, 21:29
Hallo Milos, Hallo Jens01 so gehts z.B.:
1.Dieses VCL-Panel FMX-Adapter einbinden
http://alex-ai.blogspot.de/2013/11/h...iremonkey.html
Delphi-Quellcode:
unit FMXAdapter;
 
interface
 
uses
  FMX.Forms,
  Vcl.ExtCtrls;
 
type
  TFMX_Adapter_Panel = class(Vcl.ExtCtrls.TPanel)
  private
    FForm: TCommonCustomForm;
    procedure ResizeForm;
    procedure SetForm(const AForm: TCommonCustomForm);
  protected
    procedure Resize; override;
  public
    property Form: TCommonCustomForm read FForm write SetForm;
  end;
 
implementation
 
uses
  Types,
  Winapi.Windows, System.SysUtils,
  FMX.Platform.Win;
 
 
{ TFMX_Adapter_Panel }
 
procedure TFMX_Adapter_Panel.Resize;
begin
  inherited;
  ResizeForm();
end;
 
procedure TFMX_Adapter_Panel.ResizeForm;
begin
  if Assigned(FForm) then begin
    FForm.SetBounds(BorderWidth, BorderWidth, ClientWidth + BorderWidth, ClientHeight + BorderWidth);
  end;
end;
 
procedure TFMX_Adapter_Panel.SetForm(const AForm: TCommonCustomForm);
begin
  FForm := AForm;
  FForm.BorderIcons := [];
  FForm.BorderStyle := TFmxFormBorderStyle.bsNone;
  FForm.Visible := True;
  Winapi.Windows.SetParent( FmxHandleToHWND(FForm.Handle),Handle );
  FForm.Left:=0;
  FForm.Top:=0;
  FForm.Width:=width;
  FForm.Height:=height;
  ResizeForm();
end;
 
end.

2. und in einem FMX-Fenster plazieren über:
 FMX_Adapter_Panel.ParentWindow := FormToHWND( Self );

3. Ein weiteres FMX-Fenster FMX_Render_Form in diesem
FMX_Adapter_Panel plazieren über:
FMX_Adapter_Panel.Form:=FMX_Render_Form;
// SetForm gegenüber dem Link geändert, damit sich das Form sauber im Panel plaziert.

4. Dann kannst Du Dein Bsp. drinnen laufen lassen, indem Du Dein FMX_Render_Form übergibst:
http://esv.cocolog-nifty.com/blog/opengl/index.html
http://escargot.la.coocan.jp/SimpleS...OpenGL_FMX.pas

Ich hab auch versucht in das VCL-Panel zu rendern. Es tat sich aber nichts.
Beim FMX-Form im VCL-Panel geht es.

Die Frage ist: Wie läuft das Ganze unter Android, wenn man bei diesem Weg ein VCL-Panel als Container nehmen muss ?

Man kann auch ein FMX-Form in ein anderes legen über
 Winapi.Windows.SetParent( FmxHandleToHWND(Form_x.Handle),FmxHandleToHWND(Handle) ); doch wenn man den Rahmen und die Icons wegnimmt geht es nicht mehr - seltsam.

Embarcadero könnte da mal was passendes liefern.

Geändert von luisk ( 3. Jul 2016 um 06:27 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz