AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Unterschiedliche DFMs für ein Formula r/ Varianten?
Thema durchsuchen
Ansicht
Themen-Optionen

Unterschiedliche DFMs für ein Formula r/ Varianten?

Ein Thema von sonicus83 · begonnen am 8. Jan 2020 · letzter Beitrag vom 9. Jan 2020
Antwort Antwort
sonicus83

Registriert seit: 4. Aug 2008
33 Beiträge
 
#1

Unterschiedliche DFMs für ein Formula r/ Varianten?

  Alt 8. Jan 2020, 13:48
Hallo,

für ein Projekt passe ich gerade eine firmeninterne Software für ein Partnerunternehmen an. Es sind im allgemeinen nur ein paar Details, die ich bisher über Compilerschalter gelöst habe. Nun steht aber an, dass die Oberfläche geändert werden soll (Schriftgröße, daraus folgend aber das gesamte Layout).

Gibt es eine Möglichkeit (ggf. per Compilerschalter), verschiedene DFMs einzubinden und zwischen diesen "umzuschalten"? Oder müsste ich das ganze per Hand lösen (jeweils umbenennen per Batch fällt mir jetzt ein..).

Danke für jeden hilfreichen Hinweis.
Delphi programming is searched by some guys...
  Mit Zitat antworten Zitat
BerndS

Registriert seit: 8. Mär 2006
Ort: Jüterbog
491 Beiträge
 
Delphi 12 Athens
 
#2

AW: Unterschiedliche DFMs für ein Formula r/ Varianten?

  Alt 8. Jan 2020, 13:53
Hallo, wäre es nicht einfacher das Original abzuleiten und dann das jeweils benötigte entweder per Bedingung oder über einen Compilerschalter zu erzeugen.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Unterschiedliche DFMs für ein Formula r/ Varianten?

  Alt 8. Jan 2020, 13:57
Hallo,
mir fallen da Frames ein.
Heiko
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.456 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Unterschiedliche DFMs für ein Formula r/ Varianten?

  Alt 8. Jan 2020, 14:15
Mir fällt da ein separater branch im VCS ein.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#5

AW: Unterschiedliche DFMs für ein Formula r/ Varianten?

  Alt 8. Jan 2020, 14:16
Oder ein dynamisches Layout, welches sich an die Größe der Komponenten anpasst. (selbstständig Nachbarkomponenten verschiebt)

z.B. TGridPanel und seine neuen Freunde
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#6

AW: Unterschiedliche DFMs für ein Formula r/ Varianten?

  Alt 8. Jan 2020, 14:31
Delphi-Quellcode:
implementation

{$R *.dfm}
Das bindet die DFM-Ressource ein und man kann natürlich auch eigene Ressourcen einbinden.
(per Code oder über den RessourcenManager des Pojektes = DPROJ)

Geladen wird die Ressource dort: (Vcl.Forms.pas bzw. damals Forms.pas)
TCustomForm.Create > InitInheritedComponent > InternalReadComponentRes

Aber nein, die Funktionen, welche den Namen der Ressource bestimmen (heißt so, wie die Form) sind nicht "einfach" via Override zu ändern, damit du dort dann einen anderen Namen nehmen könntest.



Andere Lösung: Vererbung
Delphi-Quellcode:
type
  TDeineAbleitung = class(TDeineGrundForm)
    ...
  end;
In dem Nachfahren kann man Komponenten verschieben, ausblenden/einblenden (Visible) und alle anderen Property ändern, wie z.B. Font/Top/Left/Height/...
Man kann auch neue Komponenten hinzufügen. (nur löschen lassen sich im Nachfahren keine geerbten Komponenten)
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#7

AW: Unterschiedliche DFMs für ein Formula r/ Varianten?

  Alt 8. Jan 2020, 14:36
Das Problem ist weniger das Einbinden einer anderen DFM als Resource als das Editieren dieser im Form-Designer.

Insofern würde ich auch den Vererbungs-Ansatz empfehlen. Am besten noch (wenn nicht schon vorhanden) mit zwei separaten Projekt-Dateien, in denen dann nur die benötigen Ableitungen eingebunden sind.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#8

AW: Unterschiedliche DFMs für ein Formula r/ Varianten?

  Alt 8. Jan 2020, 14:41
Für den Formdesigner müssen die Forms/Versionen sowieso in getrennten eigenen Units liegen, da er pro Unit nur einen Designer hat.
$2B or not $2B
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.116 Beiträge
 
Delphi 12 Athens
 
#9

AW: Unterschiedliche DFMs für ein Formula r/ Varianten?

  Alt 9. Jan 2020, 10:00
Als Anregung: Firemonkey verwaltet ja verschiedene Forms, vermutlich so wie Du das brauchst:
http://docwiki.embarcadero.com/RADSt...Device_Project

Das sieht dann so aus
Delphi-Quellcode:
{$R *.fmx}
{$R *.Windows.fmx MSWINDOWS}
{$R *.iPhone4in.fmx IOS}
{$R *.LgXhdpiPh.fmx ANDROID}
Könnte man evtl. in VCL mit IFDEFS nachbilden, oder womöglich geht das bereits ähnlich in VCL ?
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#10

AW: Unterschiedliche DFMs für ein Formula r/ Varianten?

  Alt 9. Jan 2020, 11:02
Allerdings hat der FMX-Designer auch die Möglichkeit diese Ansichten zu bearbeiten. Das kann der VCL-Designer nicht.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  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 01:26 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