AGB  ·  Datenschutz  ·  Impressum  







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

FMX Formular in VCL-Anwendung einbetten

Ein Thema von Andreas L. · begonnen am 6. Nov 2019 · letzter Beitrag vom 9. Nov 2019
Antwort Antwort
Andreas L.

Registriert seit: 23. Mai 2011
Ort: Furth im Wald
308 Beiträge
 
Delphi 11 Alexandria
 
#1

FMX Formular in VCL-Anwendung einbetten

  Alt 6. Nov 2019, 11:54
Hallo,
ich habe das Control TFireMonkeyContainer im Internet gefunden. Damit ist es möglich ein Firemonkey-Formular oder Frame in einem VCL-Formular einzubetten. Das FMX-Formular und dessen Controls können nach belieben gestylt werden und lässt sich auch via Code ganz normal steuern und verwenden. Das funktioniert scheinbar ziemlich gut.

Jetzt wollte ich wissen: Ist das eine gute Idee, schlechtes App-Design, Fehleranfällig, ein totales No-Go... Was meint ihr dazu?
Andreas Lauß
Blog
  Mit Zitat antworten Zitat
Andreas L.

Registriert seit: 23. Mai 2011
Ort: Furth im Wald
308 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: FMX Formular in VCL-Anwendung einbetten

  Alt 6. Nov 2019, 12:21
Ich habe es so eben geschafft ein VCL-Form in ein FMX-Projekt ein zu binden. Das Form lies sich problemlos via Form.Show; aufrufen.

Selbe Frage wie im ersten Post: Ist das sinnvoll oder fehleranfällig?
Andreas Lauß
Blog
  Mit Zitat antworten Zitat
Der schöne Günther

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

AW: FMX Formular in VCL-Anwendung einbetten

  Alt 6. Nov 2019, 12:26
Das kann man glaube ich nur beantworten wenn du mehr Infos über das Wie gibst.
  Mit Zitat antworten Zitat
Andreas L.

Registriert seit: 23. Mai 2011
Ort: Furth im Wald
308 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: FMX Formular in VCL-Anwendung einbetten

  Alt 6. Nov 2019, 13:14
Das kann man glaube ich nur beantworten wenn du mehr Infos über das Wie gibst.
Ich hab erst ein ganz normales VCL-Form erstellt. Danach ein FMX-Anwendung. Im Projekt-Explorer habe ich dann via Rechtsklick->Hinzufügen... das VCL-Form dem FMX-Projekt hinzugefügt. Delphi zeigt dann eine Warnung an das das Modul nicht geeignet wäre und das vielleicht Fehler auftreten können. Die Meldung habe ich mit OK bestätigt. Jetzt war das Form im Projekt und ich konnte es in einem FMX-Formular via Uses einbinden und dann in einem Button-Click-Event einfach Form2.Show; aufrufen. Ganz einfach...
Andreas Lauß
Blog
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.533 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: FMX Formular in VCL-Anwendung einbetten

  Alt 6. Nov 2019, 22:12
Also diese Mixerei ist nicht ganz so einfach, früher oder später wirst Du da mal auf irgendwelche Probleme stoßen...

Wenn Du es unbedingt machen willst, würde ich das Hydra-Framework nutzen, das habe ich mal eine zeitlang verwendet, weil es Anfangs noch keine PDF-Anzeige Möglichkeit für FMX gab. Das FrameWork hat recht zuverlässig funktioniert, kostet aber und ist auch nicht ganz so einfach:

https://hydra.remobjects.com/hydra/tour.aspx

Dazu hatte ich mal ein kurzes Video gedreht: https://www.youtube.com/watch?v=0K8mEzDmlaM

Besser fände ich aber eine eigene FMX-DLL zu machen und die benötigte Funktionalität aus der DLL aufzurufen.
Dazu habe ich in meinem Blog mal was geschrieben (Beitrag 7 : https://www.devpage.de/blog/firemonkey.htm) und auch ein kurzes Video dazu gedreht: https://www.youtube.com/watch?v=MnqPmX3yJBM

Noch ne Variante, die auch zuverlässig funktioniert, ist eine ganze FMX.Exe in das eigene VCL-Programm einzubetten, auch dazu gibts ein Video (https://www.youtube.com/watch?v=kqOnZn_sHUI) und einen Blogbeitrag (Nr. 14) mit dem Source.

Inzwischen finde ich aber die allerbeste Lösung ist, ALLES mit FMX zu machen, neue Projekte fange ich nur noch mit FMX an, eine Reihe von VCL-Projekte habe ich nach FMX konvertiert (ist aber viel Arbeit), einige führe ich weiter (um nicht ganz aus der Übung zu kommen...).
  Mit Zitat antworten Zitat
Andreas L.

Registriert seit: 23. Mai 2011
Ort: Furth im Wald
308 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: FMX Formular in VCL-Anwendung einbetten

  Alt 9. Nov 2019, 13:14
Hi Harry,
danke für deine Antwort.

Also diese Mixerei ist nicht ganz so einfach, früher oder später wirst Du da mal auf irgendwelche Probleme stoßen...
Welche Probleme könnten da z. B. auftreten?

Zitat:
Wenn Du es unbedingt machen willst, würde ich das Hydra-Framework nutzen, das habe ich mal eine zeitlang verwendet, weil es Anfangs noch keine PDF-Anzeige Möglichkeit für FMX gab. Das FrameWork hat recht zuverlässig funktioniert, kostet aber und ist auch nicht ganz so einfach:

https://hydra.remobjects.com/hydra/tour.aspx

Dazu hatte ich mal ein kurzes Video gedreht: https://www.youtube.com/watch?v=0K8mEzDmlaM
Das Hydra-Framework macht einen guten Eindruck. Leider kann ich es mir nicht leisten.

Zitat:
Besser fände ich aber eine eigene FMX-DLL zu machen und die benötigte Funktionalität aus der DLL aufzurufen.
Dazu habe ich in meinem Blog mal was geschrieben (Beitrag 7 : https://www.devpage.de/blog/firemonkey.htm) und auch ein kurzes Video dazu gedreht: https://www.youtube.com/watch?v=MnqPmX3yJBM
Also sozusagen eine DLL die ein FMX-Form enthält das dann zur Laufzeit in das VCL-Programm geladen wird?

Zitat:
Noch ne Variante, die auch zuverlässig funktioniert, ist eine ganze FMX.Exe in das eigene VCL-Programm einzubetten, auch dazu gibts ein Video (https://www.youtube.com/watch?v=kqOnZn_sHUI) und einen Blogbeitrag (Nr. 14) mit dem Source.

Das Firemonkey-Form hat ein Handle das ich nutzen kann um das ganze Form in eine VCL-Anwendung einzubetten. Z. B. auf einer ScrollBox. Damit habe ich schon experimentiert. Leider haben die Controls auf der Form kein Handle. Aber der umgekehrte Weg wäre für mich viel besser: Ein VCL-Control in eine Firemonkey-App einbetten. Leider kann ich das VCL-Form oder Control nur auf das FMX-Form platzieren und nicht auf anderen FMX-Controls weil wie gesagt diese kein Handle haben. Hast du noch eine Idee wie das klappen könnte? Also VCL-Form/-Control in einem FMX-Control z. B. Panel einbinden? Mir fällt nur ein das VCL-Form ohne Border anzuzeigen und via Koordinaten über das FMX-Form/-Control zu platzieren. Aber das scheint mir sehr unsauber...

Zitat:
Inzwischen finde ich aber die allerbeste Lösung ist, ALLES mit FMX zu machen, neue Projekte fange ich nur noch mit FMX an, eine Reihe von VCL-Projekte habe ich nach FMX konvertiert (ist aber viel Arbeit), einige führe ich weiter (um nicht ganz aus der Übung zu kommen...).
Ich möchte auch neue Projekte mit Firemonkey beginnen. Es bietet einfach viel mehr Möglichkeiten eine Anwendung zu designen. Aber ich brauche in meinem Projekt unbedingt eine Code-Editor-Komponente wie SynEdit (siehe meine anderen Post). Du kennst nicht zufällig so ein Control oder hast eine andere Idee dazu?
Andreas Lauß
Blog

Geändert von Andreas L. ( 9. Nov 2019 um 13:16 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.533 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: FMX Formular in VCL-Anwendung einbetten

  Alt 9. Nov 2019, 20:13
Hi Harry,
danke für deine Antwort.

1- Welche Probleme könnten da z. B. auftreten?
2- Also sozusagen eine DLL die ein FMX-Form enthält das dann zur Laufzeit in das VCL-Programm geladen wird?
3- Aber das scheint mir sehr unsauber...
4- ich brauche in meinem Projekt unbedingt eine Code-Editor-Komponente wie SynEdit
1- Mal abgesehen von Konflikten mit gleichen Variablen-Namen, Unterschiede, ob zuerst Windows-Units oder FMX-Units irgendwo eingebunden sind, zusätzlicher Speicherbedarf, insgesamt unsicheres Gesamtverhalten.

2- Ja, genau

3- Das sehe ich auch so...

4- SnyEdit ist natürlich schon sehr mächtig. Brauchst Du davon wirklich alles? Ansonsten könnte evlt. das hier reichen?

https://www.tmssoftware.com/site/tms...xmemo#features
  Mit Zitat antworten Zitat
Antwort Antwort


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 22:37 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