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 Sauberer Weg VCL zu patchen? (https://www.delphipraxis.net/116958-sauberer-weg-vcl-zu-patchen.html)

Assertor 9. Jul 2008 11:08


Sauberer Weg VCL zu patchen?
 
Hallo,

ich habe gerade mal wieder einen VCL Patch anwenden dürfen, damit auch wirklich jede Komponente und Unit den Fix bekommt.

Konkret geht es um http://qc.codegear.com/wc/qcmain.aspx?d=61288

Jedes mal bei einer neuen Delphi Version in der VCL rumwühlen ist ja auch nicht schön. Was ist der beste Weg, solche einen Patch einzupflegen? Wie macht Ihr das? Am liebsten wäre mir eine Unit, die die entsprechende Klasse für die ganze Anwendung hookt, um auf die privaten Objekte Zugriff zu erhalten.

Dann kann man selbst per Compiler Def prüfen, ob der Patch Anwendung finden soll oder nicht.

Gruß Assertor

P.S: Diff/Merge geht natürlich auch ;)

Apollonius 9. Jul 2008 11:33

Re: Sauberer Weg VCL zu patchen?
 
Es sollte doch kein Problem sein, eine Ersatzroutine zu schreiben und dann mit einem unbedingten Sprung dorthin zu springen, oder? Das einzige Problem ist, dass du dich dann auf eine bestimmte Art von CPU festlegst.

Edit: Wenn du den Titel ernst meinst, solltest du diesen Beitrag ignorieren.

Assertor 9. Jul 2008 11:45

Re: Sauberer Weg VCL zu patchen?
 
Zitat:

Zitat von Apollonius
Es sollte doch kein Problem sein, eine Ersatzroutine zu schreiben und dann mit einem unbedingten Sprung dorthin zu springen

Der Titel war schon erst gemeint ;)

Mich interessiert, wie es andere machen: VCL Dateien entsprechend der eigenen Bedürfnisse fixen, Patch im Intranet verteilen. Ins Versionkontrollsystem CVS/SVN integrieren?

Gruß Assertor

Panthrax 4. Aug 2008 18:21

Re: Sauberer Weg VCL zu patchen?
 
Subversion, TortoiseSVN, Patch.exe, diff.exe

Grober Ablauf
(Hinweis: alles mit Subversion)

1. (fremden) Quelltext in Subversion ablegen ("Original")
2. zu ändernden Quelltext aus Subversion in ein Arbeitsverzeichnis laden
3. Änderungen im Arbeitsverzeichnis durchführen
4. geänderten Quelltext wieder in Subversion hineinladen (zusammenführen, "geändertes Original"), fertig.

Bei aktualisiertem (fremden) Quelltext

5. Quelltext aus Subversion in ein Arbeitsverzeichnis laden
6. Arbeitsverzeichnis mit neuen Quelltext "überschreiben" (dieser Schritt ist ein bisschen kniffelig: neue Dateien müssen hinzugefügt werden, nicht mehr vorhandene Dateien müssen gelöscht werden; - Verzeichnisvergleich mit irgendeinem Programm machen...)
7. Quelltext in Subversion hineinladen (zusammenführen, "neuer Quelltext")
8. Differenz zwischen "Original" und "geändertem Original" berechnen (und speichern)
9. Differenz auf "neuen Quelltext" anwenden (wieder in einem separaten Arbeitsverzeichnis)
10. geänderten, neuen Quelltext in Suversion hineinladen, fertig.

Damit lassen sich Originale von Version zu Version vergleichen und eigene Änderungen an jedem Original.


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