![]() |
AW: Einfache Datentypen schnell zusammenbauen?
Vielen Dank für die Antworten!
Interface extrahieren ist genau was ich wollte- Das hatte ich mir mittlerweile abgewöhnt da die Refactoring-Funktionen meistens eh nicht funktionieren. Auf die offensichtlichsten Dinge kommt man nie von selbst :spin2: |
AW: Einfache Datentypen schnell zusammenbauen?
|
AW: Einfache Datentypen schnell zusammenbauen?
Man kann das nicht side-by-side machen. Leider fehlt in Delphi die Möglichkeit, im Interface eine Methode hinzuzufügen und diese dann in allen abgeleiteten Klassen automatisch zu deklarieren und zu implementieren.
In Visual Studio erweitere ich mein Interface und lasse dann per Refactoring die neue Methode/Property einfach in alles Klassen, die das Teil implementieren, hinzufügen. Allerdings habe ich Resharper, es wäre also denkbar, das das damit geht. Und vermutlich sind die hier schon vorgestellten Refactoring-Tools für Delphi nicht ganz so schrottig, wie das eingebaute Refactoring von Delphi. Wenn ich mir die Modelmaker-Features anschauen, ist das aber eher ein Productivity-Tool, d.h. die normalen Aufgaben werden einem abgenommen und halbautomatisiert (Add Property, Add Field etc.). Sehr praktisch, aber eben kein Refactoring. |
AW: Einfache Datentypen schnell zusammenbauen?
Na ja, zumindestens die Codevervollständigung bietet dir in der Klasse die Methodennamen der Interfaces, so daß man eine Methode auch ohne Refactoring mit wenigen Klicks hinzugefügt hat.
|
AW: Einfache Datentypen schnell zusammenbauen?
Zitat:
Seit ARC, bin ich ein Fan von Interfaced Objects... Denn seit ich für Android & iOS Programmiere, vergesse ich auf Windows Seite notorisch das Free... Auch für die Wiederverwendbarkeit des Codes... Stichwort "Dependency Injection" ist es sinnvoll. Grüsse Mavarik |
AW: Einfache Datentypen schnell zusammenbauen?
Zitat:
Delphi-Quellcode:
Und so weiter... lief mit Delphi 5 wie mit XE.
{$IFNDEF COMPILER_14_UP}
TTypedObjectListItem = TPosScreenElement; {$define NoNewTypeSection} {$include 'TypedObjectListTemplate.inc'} TPosScreenElementList = class(TTypedObjectListTemplate) {$ELSE} TPosScreenElementList = class(TObjectList<TPosScreenElement>) {$ENDIF} Da die Deklarationen ansonsten bei der generischen Variante gleich waren, lief der Quelltext mit Template und echten Generics parallel. |
AW: Einfache Datentypen schnell zusammenbauen?
So richtig lesbar/übersichtlich ist das ja nicht gerade...
|
AW: Einfache Datentypen schnell zusammenbauen?
Immer noch besser als die ganze Klasse jedesmal neu zu schreiben. Und ohne die Unterstützung der echten Generics brauchst du ja auch den größten Teil nicht. Ohne reicht ja das:
Delphi-Quellcode:
Insbesondere aber die einfache Unterstützung von echten Generics und alten Delphis mit nur wenigen Zeilen fand ich aber sehr interessant, da ich auf Generics nicht verzichten wollte, aber auch möglichst wenig redundanten bzw. extra für alte Versionen geschriebenen Code wollte.
TTypedObjectListItem = TPosScreenElement;
{$include 'TypedObjectListTemplate.inc'} TPosScreenElementList = class(TTypedObjectListTemplate) // und nach dem Implementation noch ein Include |
AW: Einfache Datentypen schnell zusammenbauen?
Den Trick kann man allerdings nur einmal pro Unit verwenden.
|
AW: Einfache Datentypen schnell zusammenbauen?
Nein, ich hatte mehrere ifdefs drin, so dass bis zu drei gingen. Aber sauberer ist ohnehin eine Definition pro Unit.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:03 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz