Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: Frame in mehreren Delphiversionen nutzen

  Alt 17. Okt 2013, 11:20
Wenn du dafür sorgst, daß in der DFM keine Property vorhanden sind, die nicht von beiden DelphiVersionen verstanden werden, dann gibt es da eigentlich keine Probleme.
Das Selbe gilt natürlich auch für den Code, den beide Versionen verstehen müssen.
- Vorallem die Uses-Klausel, mit den neuen NameSpaces und womöglich verschobenem RTL/VCL-Code, der jetzt in anderen Units steckt. Aber hier kann man ja mit IFDEFs etwas nachhelfen.

Entweder du editierst diesen Frame dann möglichst nur im alten Delphi (es gibt im neuen Delphi vermutlich weniger Probleme mit dem alten Code)
oder du leitest das TFrame nochmal ab, bevor du es verwendest und setzt die problemeatischen Property dort auf "stored False". (notfalls die jeweils unbekannten Property mit IFDEF gekapselt)


Bei TForm gibt es auch kaum Unterschiede.
Früher wurde da aber Width und Height gespeichert, was total blöd war, wenn sich der Rahmen/Style des Fensters je Windowsversion unterscheidet
und jetzt wird da ClientWidth und ClientHeight verwendet, aber das neue Delphi kommt auch noch mit Width und Height klar. (so halbwegs ... mit Anchors gibt es ja immer mal Probleme)



PS: Das Selbe gilt eigentlich auch für die Komponenten auf der Form/Frame, welche ebenfalls unterschiedliche Eigenschaften enthalten können.
Aber da gibt es so einige, welche sich sagen "Verwende nie etwas direkt und packe immer einen eigenen Wrapper drumrum" ... also mindestens einmal ableiten, selbst wenn man "jetzt" noch nichts anpasst.

PPS: Ich mag diese {$IFDEF VER180} nicht, da sie sich nur auf eine ganz bestimmte Version beziehen und keine Bereich erlauben.
Sowas wie Version >= 18 geht da einfach nicht. (OK, außer man definiert sich weitere DEFINITIONEN, aber mit jeder neuen Delphiversion muß man sowas sinnlos anpassen und darf blos nichts vergessen)

Und verwende sehr ungern {$IFNDEF ...} , da man das N so gern übersieht.

{$IF CompilerVersion < 18.0} und {$IF CompilerVersion >= 18.0} ist da doch schöner.





Ach ja, im Endeffekt kann es natürlich auch einfacher sein, das doch einfach doppelt zu führen.
Da mußt du dann nur bei Änderungen das jeweils im anderen Delphi öffnen, die Änderungen anpassen lassen und es dann unter dem jeweils anderen Dateinamen abspeichern.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (17. Okt 2013 um 11:25 Uhr)
  Mit Zitat antworten Zitat