Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Generics und ältere Delphi´s? (https://www.delphipraxis.net/178069-generics-und-aeltere-delphi%B4s.html)

stahli 15. Dez 2013 20:42

Generics und ältere Delphi´s?
 
Ich baue eine Komponente für FMX und verwende dort (natürlich) generische Listen.
Evtl. könnte die Komponente aber auch mal für ältere Delphi-Versionen (also auch VCL ohne Generics) interessant werden.
Entsprechend wäre der Quelltext anzupassen und es gäbe unterschiedliche Versionen (VCL mit und ohne Generics und FMX mit Generics).

Wie würdet Ihr in dem Fall arbeiten?

Gleich auf Generics verzichten oder später ggf. eine entschärfte Version ableiten und dort die Generics ersetzen.
Wie oft evtl. später noch an der Komponente Änderungen/Erweiterungen fällig würden, kann ich schwer einschätzen.

jaenicke 15. Dez 2013 21:15

AW: Generics und ältere Delphi´s?
 
Ich habe da einfach generische Templates (mit Includedateien) benutzt. So musste ich nur per IFDEF zwischen echten Generics ab Delphi 2009 und gefakten vorher umschalten, was sich auf die Zeile der Deklaration der von der generischen Liste abgeleiteten Klasse beschränkt sowie der Einbindung der Includedatei nach implementation. ;-)

stahli 15. Dez 2013 21:38

AW: Generics und ältere Delphi´s?
 
Hmm, wenn man etwas mehr in´s Detail geht kommt z.B. noch der Unterschied beim List.Sort hinzu. (Nachtrag: oder "for ... in")
Da bräuchte man auch wieder zwei Varianten (Funktion bzw. Comparer).

Insofern war meine Überlegung, generell lieber auf die klassische Art zu entwickeln.
Das ist etwas umständlicher als wenn man die Neuerungen nutzt, aber man macht dann wenigstens nicht einiges doppelt.

Da ich auch einen Komponenteneditor brauche sind aber unterschiedliche Versionen dann aber eh nicht ganz vermeidbar (wenn man das DesigntimePackage dazu zählt).


Ich werde jetzt erst mal weiter mit Generics entwickeln (außer bei Listen, die sortiert werden) und die Generics vermutlich später wieder raus werfen. Ist ja dann nur etwas mehr Schreibarbeit nötig.

TiGü 16. Dez 2013 10:58

AW: Generics und ältere Delphi´s?
 
Zitat:

Zitat von stahli (Beitrag 1239880)
Ich baue eine Komponente für FMX und verwende dort (natürlich) generische Listen.

Alle Delphi-Versionen, die FMX unterstützen, kennen auch Generics.
Delphi-Versionen vor XE2 kennen kein FMX!
Generics gibt es seit Version 2009!

Wenn du daraus doch noch eine VCL-Komponente machst, dann spar dir doch den alten Gammel.
Haben halt die Delphi 5 und 7 Benutzer mit ihren Heft-CD-Versionen Pech gehabt.

mquadrat 18. Dez 2013 09:46

AW: Generics und ältere Delphi´s?
 
Ich würde mir die Arbeit ersparen, dass ohne Generics nochmal zu implementieren. Wenn jemand die Komponenten verwenden möchte und kann keine Generics verwenden, dann kann er deine Komponente ja forken (falls sie unter Open Source läuft).

jaenicke 18. Dez 2013 10:17

AW: Generics und ältere Delphi´s?
 
Zitat:

Zitat von mquadrat (Beitrag 1240196)
Ich würde mir die Arbeit ersparen, dass ohne Generics nochmal zu implementieren.

So viel Arbeit ist es zumindest rein für die generischen Listen doch gar nicht. Ein Beispiel wie ich es eingesetzt habe:
Delphi-Quellcode:
{$IFNDEF COMPILER_14_UP}
  TTypedObjectListItem = TEventListenerClient;
{$include 'TypedObjectListTemplate.inc'}
  TEventListenerClientList = TTypedObjectListTemplate;
{$ELSE}
  TEventListenerClientList = TObjectList<TEventListenerClient>;
{$ENDIF}
Sprich für alte Delphiversionen habe ich einfach die Klasse anders deklariert. Und zusätzliche Funktionen kann man ja umsetzen indem man direkt eine eigene Klasse ableitet.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:57 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