AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

VCL-Form in FireMonkey-Panel einbinden

Ein Thema von Golli18 · begonnen am 3. Feb 2014 · letzter Beitrag vom 4. Feb 2014
Antwort Antwort
Golli18

Registriert seit: 4. Sep 2013
22 Beiträge
 
Delphi XE5 Enterprise
 
#1

VCL-Form in FireMonkey-Panel einbinden

  Alt 3. Feb 2014, 09:57
Delphi-Version: 5
Hallo Forum!

Man hat die Möglichkeit, eine Form in ein Panel einer anderen Form zu "öffnen". Hier ein Link: http://docwiki.embarcadero.com/CodeE...m_%28Delphi%29. Aber leider klappt das nur, wenn beide Formen FireMonkey-Formulare sind. In meinem Projekt habe ich allerdings als Hauptform eine FireMonkey und als Parent-Form ein VCL-Fomular. Leider klappt das nicht. Gibt es trotztem eine Möglichkeit ein VCL-Formular in ein Panel unter FireMonkey anzuzeigen? Leider bin ich auf das VCL angewiesen und das lässt sich auch nicht ändern.

LG

Der Golli
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.093 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: VCL-Form in FireMonkey-Panel einbinden

  Alt 3. Feb 2014, 10:18
VCL und FireMonkey sind generell ein "Entweder-oder". Es gibt ein paar Tricksereien, wie man ein Firemonkey-Formular in eine VCL-Anwendung integrieren* kann, aber umgekehrt habe ich noch nichts gesehen. Und hätte ehrlich gesagt auch ziemlich wenig Hoffnung.

* Ich finde es auf die Schnelle nicht mehr, aber es waren ein oder zwei Blogbeiträge die mit Quelltext zeigten, wie es möglich war.

PS: Wieso gibt du "Delphi Version: 5" an?
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.753 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: VCL-Form in FireMonkey-Panel einbinden

  Alt 3. Feb 2014, 10:44
Eventuell ist XE5 gemeint...

Und ja: VCL und FMX sollte man lieber nicht mischen.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: VCL-Form in FireMonkey-Panel einbinden

  Alt 3. Feb 2014, 10:45
Geht ganz einfach so
Delphi-Quellcode:
unit FormMain;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Graphics, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.StdCtrls;

type
  TMainForm = class( TForm )
    Panel1 : TPanel;
    Button1 : TButton;
    procedure Button1Click( Sender : TObject );
  private
    FSubView : TComponent;
  public
    { Public-Deklarationen }
  end;

var
  MainForm : TMainForm;

implementation

{$R *.fmx}

uses
  FMX.Platform.Win,
  VclFormTest;

procedure TMainForm.Button1Click( Sender : TObject );
var
  LForm : TTestFormVcl;
begin
  if Assigned( FSubView ) then
    FreeAndNil( FSubView );

  LForm := TTestFormVcl.Create( Self );
  try
    // ParentWindow Handle übergeben
    LForm.ParentWindow := FormToHWND( Self );
    LForm.Show;
    FSubView := LForm;
    LForm := nil;
  finally
    LForm.Free;
  end;
end;

end.
Das ist in Grundzügen das worauf es ankommt.

Ein TPanel hat aber kein Handle, also muss man sich eine VCL-Container-Form bauen, die ist dann der VCL-Form ein Zuhause gibt und die Container-Form wird dann in das Panel gelegt.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Golli18

Registriert seit: 4. Sep 2013
22 Beiträge
 
Delphi XE5 Enterprise
 
#5

AW: VCL-Form in FireMonkey-Panel einbinden

  Alt 4. Feb 2014, 08:36
Hallo Sir Rufo,

kannst du mir vllt. noch sagen, wie ich den VCL-Container mache oder mich auf einen Link verweisen?

Mit freundlichen Grüßen

Golli
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: VCL-Form in FireMonkey-Panel einbinden

  Alt 4. Feb 2014, 10:53
Hallo Sir Rufo,

kannst du mir vllt. noch sagen, wie ich den VCL-Container mache oder mich auf einen Link verweisen?

Mit freundlichen Grüßen

Golli
Ei jo, da Delphi-Referenz durchsuchenFMX.Forms.TForm
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 14:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz