Ältere Versionen von Delphi werden von FastReport nicht mehr unterstützt

2023-04-05

Ältere Versionen von Delphi werden ab dem aktuellen Release nicht mehr unterstützt. Die Ursachen werden nachstehend erklärt. 

Ältere Versionen von Delphi werden von FastReport nicht mehr unterstützt

Obwohl wir Delphi schon seit 1995 verwenden, entwickelt es sich weiter und hat unbestreitbare Vorteile für Programmierer. In der gleichen Weise stehen FastReport Produkte für Delphi nicht still und mit jedem Release versuchen wir neue und erweiterte Funktionen für Entwickler zu bringen. Wichtiges Update: FastReport VCL unterstützt keine Delphi-Versionen älter als 2010 mehr. Und wir erklären warum.

Vielleicht fragen Sie sich, warum Sie Delphi aktualisieren sollten und welche Vorteile neue Versionen bieten? Dazu gehören vor allem zahlreiche neue Funktionen, die bei der Erstellung von High-End-Anwendungen einen großen Produktivitätsgewinn gewährleisten. Dieser Artikel soll zeigen, welche wichtigen Änderungen an Delphi ab Version 7 vorgenommen worden sind, und Fragen zur Einstellung der Unterstützung für ältere Versionen von Delphi beantworten.

1. Welche Versionen werden von FastReport VCL nicht mehr unterstützt?

  • Borland Delphi 7
  • Borland Delphi 8
  • Borland Delphi 2005

  • Borland Delphi 2006

  • CodeGear Delphi 2007

  • Delphi 2009

FastReport VCL 2023.2 funktioniert garantiert nur ab der Delphi 2010 Version.

Ältere Versionen von Delphi werden von FastReport nicht mehr unterstützt

2. Warum verzichten wir auf ältere Versionen von Delphi vor Delphi 2010, und was hindert uns daran, auf sie in der Entwicklung zu verzichten?

Ein wichtiger Meilenstein in der Entwicklung der VCL-Richtung der Berichtsgeneratoren war die Einstellung der Unterstützung für veraltete Nicht-Unicode-Versionen. Dies wird uns helfen, intensiver an Verbesserungen von FastReport zu arbeiten und mit jedem Release modernere Funktionen einzuführen. Ab der Version 2023.1 von FastReport VCL werden Delphi-Versionen ab 2010 unterstützt.

Es gibt mehrere Faktoren, die diese Entscheidung beeinflusst haben:

  • Fehlende native Unicode-Unterstützung in älteren Versionen, was zu verschiedenen Einschränkungen bei der Lokalisierung und Handhabung von Strings und Texten führt;
  • Notwendigkeit, so viele Funktionen zu unterstützen, die bei der Verwendung neuer Versionen von Delphi nicht mehr benötigt werden;
  • Keine Generics und keine anonymen Methoden, was zusätzliche Personalkosten für die Unterstützung von Funktionen verursacht, die einfacher in Standard-IDE-Modulen implementiert hätten werden können;
  • Keine Möglichkeit, neue VCL-Komponenten einzusetzen, deren selbstständige Implementierung die Entwicklungszeit erhöht und deren Wartung ebenfalls Ressourcen erfordert;

3. Welche Vorteile bietet die Umstellung auf Delphi Versionen 2010 und höher, und welche Technologien können wir damit möglicherweise nutzen?

Namespaces für mehrere Module, Programmschleife for ... in ... do, Inline-Richtlinie für Funktionen und andere Code-Optimierungsmöglichkeiten

In Delphi macht der Compiler möglich, dass Prozeduren und Funktionen eine eingebettete Inline-Richtlinie besitzen, deren Vorhandensein die Leistung verbessert. Wenn eine Prozedur oder Funktion bestimmte Bedingungen erfüllt, fügt der Compiler den Code genau an der Aufrufstelle ein, anstatt einen normalen Aufruf zu erzeugen. Die Inline-Methode kann die Leistung optimieren und einen Code erzeugen, der schneller läuft, allerdings um den Preis, dass er größer wird. In diesem Fall wird die vom Compiler erzeugte Binärdatei größer sein. Inline-Richtlinien werden, wie andere Richtlinien auch, zur Deklaration und Definition von Funktionen und Prozeduren verwendet.

Funktionen zum schnellen Code-Refactoring 

Code-Refactoring ist der Prozess der Umstrukturierung bestehenden Quellcodes ohne dessen externes Verhalten zu ändern. Das Refactoring kann die Geschwindigkeit von Anwendungscode beschleunigen und seine Lesbarkeit vereinfachen und verbessern.

Das Refactoring in Delphi analysiert und ordnet Codes neu. Dieser Dienst zeigt die Änderungen auch im Vorschaumodus und im Refactoring-Fenster am unteren Rand des Code-Editors an. Die Kandidaten für das Refactoring werden als Baumknoten angezeigt, die geöffnet werden können, um weitere Elemente, die dem Refactoring unterliegen, anzuzeigen. Warnungen und Fehler werden ebenfalls in diesem Bereich angezeigt. Der Refactoring-Dienst kann entweder über das Kontextmenü oder über das Hauptmenü aufgerufen werden.

Komponententest (UNIT TESTING)

Neuere Versionen von Delphi besitzen das Open-Source-Test-Framework DUnit zur Erstellung und Ausführung automatisierter Testfälle. Dieses Framework erleichtert die Erstellung von Tests für Anwendungsklassen und -methoden. In Kombination mit dem Refactoring kann diese Funktion die Stabilität Ihrer Anwendung erheblich verbessern.

Durch die rechtzeitige Ausführung einer Reihe von Tests, wenn Änderungen am Quellcode des Projekts vorgenommen werden, können Fehler frühzeitig im Entwicklungsprozess gefunden und behoben werden.

Umfassende Unicode-Unterstützung auf der Ebene von Sprache, Bibliothek und Entwicklungsumgebung

Unicode ist ein Standard, der die Darstellung und die Bearbeitung eines beliebigen Aufzeichnungssystems auf dem Computer ermöglicht.

- The Unicode Standard: Version 5.0. 5. ed. Addison-Wesley Professional, 2006. 1472 p

Eine große Anzahl von Zeichensätzen in verschiedenen Sprachen, z. B. asiatische Varianten, können mit Unicode dargestellt werden. Die am häufigsten verwendeten Kodierungen sind UTF (Unicode Transform Format) und UCS (Universal Character Set). Weitere Informationen zu Unicode finden Sie unter: http://en.wikipedia.org/wiki/Unicode.

Eine wichtige Änderung in den neuen Versionen von Delphi ist, dass die String-Typen nun auf UNICODE basieren. Datentypen wie AnsiString und WideString, die auf dem ANSI-Standard basieren, sind nach wie vor angesichts der Größe von Strings in Bytes immer noch betriebsbereit.

Liste der Änderungen für die Sicherstellung der Unicode-Unterstützung:

  • String steht jetzt für UnicodeString statt für AnsiString
  • Char steht jetzt für WideChar (2 Bytes, nicht 1), was ein UTF-16-Zeichen ist
  • PChar steht für PWideChar
  • AnsiString steht für den “alten” String-Typ

Keine Änderungen:

  • AnsiString
  • WideString
  • AnsiChar, PAnsiChar
  • Short string enthält AnsiChar-Elemente
  • Implizite Konvertierung funktioniert weiterhin.

Die aktive Codeseite steuert den Modus (ANSI bzw. Unicode), so dass ANSI-Strings weiterhin unterstützt werden.

Vorgänge, die nicht von der Zeichengröße abhängen:

  • Verkettung von Strings
  • Standardfunktionen für den Umgang mit Strings. Zum Beispiel Length, Copy, Pos, etc.
  • Operatoren. Zum Beispiel <string> <comparison> <string>, CompareStr(), CompareText(), etc.
  • FillChar (<struct or memory>)
  • Windows API

Viele Unternehmen vertreiben ihre Anwendungen und/oder tauschen Informationen mit Ländern aus, in denen die Unterstützung von Unicode kritisch ist.

Generics

"Generic" ist ein Begriff für einen generischen Typ. Er bezieht sich auf die Verwendung einer Sprachsyntax zur Vordefinition von Datentypen in bestimmten Containertypen, wie Arrays oder Sammlungen. Mit Generics können Sie einen generischen Code schreiben, der mit einem bestimmten Datentyp, d. h. einer Klasse oder einer Klassenmethode, arbeitet. Sie können auch einen Typ in der Ausführungszeit angeben.

Die Generics werden ab Delphi 2009 unterstützt.

Delphi RTL enthält fertige Implementierungen von Sammlungen (definiert im Modul “Generics.Collections”):

  • TList
  • TQueue
  • TStack
  • TDictionary
  • TObjectList
  • TObjectQueue
  • TObjectDictionary
  • TThreadedQueue

Anonyme Methoden

Eine anonyme Methode ist eine Prozedur oder Funktion, der kein Name zugeordnet ist. Anonyme Methoden sind Teile des Codes, die mit Variablen verknüpft oder als Parameter für andere Methoden verwendet werden können. Außerdem können anonyme Methoden Variablen in dem Kontext verwenden, in dem sie definiert sind. Die Deklaration und Verwendung anonymer Methoden erfordert keine komplexe Syntax. Die Syntax ist ähnlich wie die von Closures in anderen Programmiersprachen.

Neue VCL-Komponente (Custom Hints, Ribbon Controls etc.)

Direct-2D-Unterstützung

Die Direct2D API ist eine Software-Schnittstelle, die für die Interaktion mit GDI, GDI+ und Direct3D bestimmt ist. Direct2D leitet alle Zeichenoperationen an den GPU (Graphic Processing Unit) statt an den CPU weiter, wodurch der Anwendung mehr Ressourcen zur Verfügung stehen. Ab Microsoft Windows 7 wurde Direct2D: API für hardwarebeschleunigte 2D-Grafikausgabe hinzugefügt, um die Leistung beim Rendern von 2D-Objekten, Bitmaps und Text zu verbessern.

In den neueren Versionen von Delphi wurde die Direct2D-Unterstützung auf der IDE-Ebene hinzugefügt.

IDE Insight, Source Code Formatter (Quelltextformatierung), Search task bar

Der neu hinzugefügte IDE Insight-Dienst ermöglicht Ihnen die Eingabe eines Namens und die Auswahl von Projektparametern und Entwicklerpräferenzen aus einer Liste von geeigneten Optionen. Die IDE Insight-Eingabefelder umfassen neben vielen anderen Kategorien auch Befehls-, Datei-, Komponenten- und Projektoptionen.

Die Delphi-Umgebung bietet die Möglichkeit, Code mithilfe von Standardvorlagen zu formatieren.

Außerdem bieten die IDEs jetzt einen vollständig anpassbaren Code-Formatierungsdienst, der durch Drücken der Tastenkombination STRG+D aktiviert wird. Dadurch wird sichergestellt, dass die Module gemäß den vordefinierten Einstellungen formatiert werden. Es ist auch möglich, alle in einem Projekt enthaltenen Module mithilfe des Projektmanagers zu formatieren.

Hintergrundkompilierung (BACKGROUND COMPILATION)

In Delphi 2010 kann die Kompilierung im Hintergrund durchgeführt werden. So ist es möglich, den Kompilierungsprozess in einem separaten oder parallelen Thread laufen zu lassen und in der IDE weiterzuarbeiten, während das Projekt kompiliert wird. Zum Beispiel können bestimmte Dateien während der Kompilierung bearbeitet und Haltepunkte gesetzt oder geändert werden.

Erweiterte Verkehrsinformationen (RTTI) 

Laufzeit-Typinformationen (engl. run-time type information, run-time type identification, RTTI) liefert Informationen über Objekte, so dass sie innerhalb der Anwendung interagieren können. Bei der Verwendung des Objektinspektors, des Code-Editors und der Modellierungswerkzeuge ist die Delphi-IDE ein weiteres gutes Beispiel für die Verwendung von RTTI.

In anderen Programmiersprachen hat sich die Art und Weise, wie wir programmieren, im Zuge ihrer Weiterentwicklung verändert. In Java und .NET erstellte Anwendungen veranschaulichen diese Innovationen gut, da moderne Programmiersprachen neue Ebenen der dynamischen Interaktion bieten. Dank der umfangreichen RTTI-Unterstützung in Delphi für Win32 verfügt Delphi 2010 nun über die gesamte Leistungsfähigkeit von .NET und Java. Das neue RTTI-System (RTTI.pas) ist vollständig objektorientiert und ermöglicht es, Interaktionen zwischen Objekten auf dynamischere Weise zu erstellen und zu implementieren.

Operatorüberladung

Die neueren Versionen von Delphi bieten die Möglichkeit, einige Funktionen oder "Operatoren" in Satzdeklarationen zu überladen. Die Namen der Operandenfunktionen entsprechen der Zeichendarstellung im Quellcode. 

Class Helpers

"Helper" ist ein Klassentyp, der zusätzliche Methoden und Eigenschaften einführt, indem er sie mit einer anderen Klasse verknüpft. Diese Methoden und Eigenschaften können im Kontext einer zugeordneten (oder abgeleiteten) Klasse verwendet werden. Class Helpers sind eine Möglichkeit, eine Klasse zu erweitern, ohne sie zu erben. Ein Class Helper führt nur dann einen zusätzlichen Sichtbarkeitsbereich ein, wenn der Compiler endgültig den Bezeichnungsnamen bestimmt.

Strict Private und Strict Protected

Neue Versionen von Delphi haben zwei Optionen, die die Sichtbarkeit von Klassenattributen bestimmen: strict private und strict protected.

Strict private: Klassenattribute sind nur innerhalb der Klasse sichtbar, in der sie deklariert sind. Diese Attribute sind nicht sichtbar von Methoden, die im gleichen Modul deklariert sind oder die nicht Teil der Klasse sind.
Strict protected: definiert, dass Klassenattribute in Nachfolgerelementen verfügbar sind.

Haltepunkte in Threads, „Einfrieren/Auftauen“ von Threads 

Neuer Speichermanager und neue RTL-Funktionen 

Einige RTL-Funktionen wurden verbessert, um die Leistung zu erhöhen. Der neue FASTMM-Speichermanager für Win32-Anwendungen ermöglicht Delphi 2006-Anwendungen eine bessere Leistung und die Erkennung von Speicherlecks durch einfache Deklaration von ReportMemoryLikeonShudown := True in jedem Teil des Programmcodes. Ab Delphi 2006 ist es möglich, nicht nur Speicherlecks zu erkennen, sondern auch die Geschwindigkeit von Anwendungen drastisch zu erhöhen.

Klassen für objektorientierte Ein-/Ausgabe in Dateien und Verzeichnisse 

Ab Delphi 2010 wurde ein neues IOUtils Modul hinzugefügt, das drei statische Klassen enthält: TDirectory, TPath und TFile. Diese Klassen stellen wiederum eine Reihe von statischen Methoden zur Verfügung, die für IO-Aufgaben nützlich sind. Die meisten Methoden sind in Funktion und Signatur mit den .NET-Klassen System.IO.Directory, System.IO.Path und System.IO.File kompatibel.

4. Was müssen diejenigen tun, die FastReport VCL mit der Delphi 7-2009 Unterstützung wünschen (wird es möglich sein, FastReport VCL bis zur Version 2023.2 herunterzuladen, wo und wie man es herunterlädt, wenn es verfügbar sein wird)?

Wenn Sie sich an den technischen Support wenden, können Sie die neueste Version von FastReport VCL erhalten, die von Delphi 7-2009 unterstützt wurde.

5. Wie wird der technische Support für FastReport VCL mit der Delphi 7-2009-Unterstützung aussehen (wird es keinen oder einen kostenpflichtigen Support geben, wird es eine Übergangszeit geben)?

Da wir die Funktionsfähigkeit in IDE-Versionen bis zur Delphi 2010 nicht mehr garantieren können, wird der technische Support dieser Versionen eingestellt.

Kritische Bugs, die dazu führen, dass FastReport VCL mit der Delphi 7-2009 Unterstützung komplett unbrauchbar wird, können auf Anfrage nach Ermessen des Entwicklers behoben werden.

Durch die Abschaffung veralteter Versionen von Delphi 7 bis Delphi 2009 können wir die Ressourcen unseres Entwicklungsteams für eine effizientere Entwicklung umverteilen, die Implementierungszeit für neue Funktionen reduzieren und mehr Zeit für die Fehlersuche in der FastReport VCL aufwenden, was wiederum zu einem stabileren Softwareprodukt führt. Unser Ziel ist es, einen leistungsstarken und schnellen Berichtsgenerator für alle Entwickler zu schaffen und wir sind sicher, dass dieser Schritt uns helfen wird, unser Produkt noch besser zu machen.

26. November 2024

Installing FastReport on .NET 8.0 and Creating a Simple Report

The purpose of this article is to explain step by step how to install FastReport on .NET 8.0 and how to create a simple report. Taking the reporting process from the beginning, it will show how to connect, design and view reports.
20. November 2024

Lokalisierung und Ändern von Sprachen in FastReport VCL

FastReport VCL unterstützt 40 Sprachen für die Schnittstellenlokalisierung und ermöglicht es Ihnen, die Sprache im laufenden Betrieb über Menüs oder Code ohne Neukompilierung zu ändern.
1. November 2024

Neue Funktionen des FastReport VCL Berichtseditors

Wir betrachten die neuen Funktionen des Berichtseditors: Hilfslinien, Hervorhebung von sich schneidenden Objekten, aktualisierte Berichts- und Datenbäume.
Fast Reports
  • 800-985-8986 (Englisch, die USA)
  • +4930568373928 (Deutsch)
  • +55 19 98147-8148 (Portugiesisch)
  • info@fast-report.com
  • 66 Canal Center Plaza, Ste 505, Alexandria, VA 22314

© 1998-2024 Fast Reports Inc.