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/)
-   -   Code erhalten, visuelle Komponente löschen (https://www.delphipraxis.net/203322-code-erhalten-visuelle-komponente-loeschen.html)

GerhardS 6. Feb 2020 01:58

Code erhalten, visuelle Komponente löschen
 
Ich habe lange Zeit nichts mehr mit Delphi gemacht. Jetzt will ich ein altes Projekt an Delphi 10.3 anpassen. Da das alte Projekt aber eine alte, nicht mehr aktualisierte Freeware-Komponente (TPNGList) benutzt, während Delphi 10.3 mit der TImageList PNGs "nativ" verarbeiten kann, klappt das Kompilieren nicht mehr. Ich habe versucht, alle Bezüge auf TPNGList in den Units und in der DFM-Datei zu löschen, handle mir aber nur Fehlermeldungen ein. Natürlich kann ich das Projekt von Grund auf neu erstellen, das kostet allerdings sehr viel Zeit. Gibt es einen einen kurzen Weg für den Austausch visueller Komponenten?

haentschman 6. Feb 2020 05:57

AW: Code erhalten, visuelle Komponente löschen
 
Moin...:P
Zitat:

Gibt es einen einen kurzen Weg für den Austausch visueller Komponenten?
...teilweise. Im CnPack gibt es eine Funktion "In Dateien ersetzen". Da kannst du die TBlubbImage List in TBlaImage List tauschen. (DFM und PAS) Wenn du dann das Projekt neu startest dann wird Delphi meckern, daß die Eigenschaft XY nicht vorhanden ist. Einfach alle ignorieren. Der nächste Schritt ist das Compilieren. Der Compiler sagt dir welche Zeile er nicht versteht. (meistens die nicht vorhandenen Properties) Die mußt du alternativ umbauen oder den Namen umbenennen.

Hinweis wegen der Image List:
Manche Image Lists sind nicht "kompatibel". (Devexpress und TImageList) Vor dem Umbau die Images in der Reihenfolge für späteres Einfügen sichern.

:hi:

jziersch 6. Feb 2020 07:17

AW: Code erhalten, visuelle Komponente löschen
 
Ich habe, in ähnlichen Situationen, ganz gute Erfahrung damit gemacht, einfach eine unit zu schreiben in der eine neue Komponente mit gleichem Namen abgeleitet wird, also in der Art

TPNGList = class(TImageList)

damit lässt sich, nach dem Hinzufügen ein paar (leerer) Emulationsfunktionen in der neuen Klasse, der Code wieder kompilieren und man kann dann nach und nach die Komponente ganz ersetzen und die alte Funktion wieder herstellen.

(Was die TImageList anbelangt - ich halte die für ungeeignet wenn man man viele Icons benötigt. Ich selber verwende ein System, welches dynamisch Images in passender Auflösung aus einer SVG Quelle erstellt.)

Dennis07 6. Feb 2020 12:35

AW: Code erhalten, visuelle Komponente löschen
 
Habe mir mithilfe von TParser einen ComponentEditor geschrieben und per IDE-Package in Delphi integriert.
Geht "relativ" einfach und unkompliziert und ist im Gegensatz zu Fremdkomponenten beliebig anpassbar.

GerhardS 8. Feb 2020 00:07

AW: Code erhalten, visuelle Komponente löschen
 
Danke für die Hilfestellungen. Zweimaliges "Ignorieren" als Antwort auf Delphis Rückfrage hat mir geholfen. Thema kann geschlossen werden.


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