Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Werkzeuge (https://www.delphipraxis.net/63-sonstige-werkzeuge/)
-   -   Automatisches Ersetzten von VCL Komponenten in pas und dfm? (https://www.delphipraxis.net/125146-automatisches-ersetzten-von-vcl-komponenten-pas-und-dfm.html)

EDatabaseError 1. Dez 2008 18:13

Re: Automatisches Ersetzten von VCL Komponenten in pas und d
 
:oops: seit halt nich so genau :D das RAD Studio eben ;)

EDatabaseError 3. Jan 2009 21:10

Re: Automatisches Ersetzten von VCL Komponenten in pas und d
 
Zitat:

Zitat von nahpets
Hallo,

ja, dass habe ich auch schon gesucht (und nicht gefunden).

Schnellschussantwort:

UltraEdit und über alle *.pas und *.dfm-Dateien ein Globalchange absetzen. (Es darf auch ein anderer Editor sein ;-))
Da TTable und TAdoTable nicht so ganz kompatibel sind, musst Du aber bei so einem globalen Ersetzen mit einer nicht unerheblichen "Fehlermenge" rechnen, wobei die Unterschiede bei TQuery und TAdoQuery wohl größer sind.

Alternative: selbstschreiben:

OpenDialog mit Multiselect:

'ne Stringliste zum Laden der Dateien per Schleife:

Delphi-Quellcode:
sl.LoadFromFile(od.FileName);
sl.Text := AnsiReplaceText(sl.Text,'TTable','TAdoTable'); // Ist nicht das Schnellste, für 'nen Einmaljob aber ausreichend.
sl.SaveToFile(od.FileName);
Eventuell noch vor dem Schreiben ein Backup der alten Datei machen.

Aufwand: halbe Stunde mit testen, Vorteil:

Du kannst das Programm um weitere Ersetzungen anpassen.

Ich muss das ganze jetzt nochmal rauskramen^^.. Wollte das jetzt mit UltraEdit machen da es mit selbergeschrieben oder Refactor nicht ordentlich geklappt hat.
Nur wenn ich die Datei in UltraEdit öffne wird die dfm Datei nicht korrekt dargestellt. Kann ich irgentwas an UltraEdit verdrehen oder gibt es eine andere Möglichkeit alle DFMs in das Text DFM Format zu wandeln?

Tobi

Namenloser 3. Jan 2009 21:35

Re: Automatisches Ersetzten von VCL Komponenten in pas und d
 
Zitat:

Zitat von Meflin
Jupp, es gibt tatsächlich eine entsprechende Refactoring-Methode dafür (siehe Anhang) - mit deinem Delphi 7 wirst du da allerdings nicht glücklich ;)

Das funktioniert aber nur für selbstdeklarierte Klassen, nehme ich an?

EDatabaseError 3. Jan 2009 21:49

Re: Automatisches Ersetzten von VCL Komponenten in pas und d
 
Jaa..aber Refactoring muss man auch jedes mal neu anschucken.. und bei 81 DFMs ;)..
Hab noch nicht die optimale Lösung gefunden :/

Michael Habbe 3. Jan 2009 22:39

Re: Automatisches Ersetzten von VCL Komponenten in pas und d
 
Mal überlegen...
Ich habe 1999 eine Anwendung unter Delphi 2 mit über 300 (!) Formularen von TTable auf TAdsTable umgestellt. Dazu musste ich jedes Formular einzeln erstmal öffnen, um sicherzustellen, dass es auch als Text gespeichert wurde. Das heisst, konnte es auf Text umgestellt werden? :gruebel: Ich weiss nicht mehr. Kann auch sein, dass ich die Ersetzmethode von Delphi benutzt habe.

Nun bin ich mir nicht mehr sicher, aber dadurch, dass ich jedes Formular einzeln angreifen musste, habe ich wie kein anderer die Anwendung kennengelernt. :shock:

Es mussten einige Dinge angepasst werden: Typ, Database, Tabellenname, Filter, Optionen, ...

Dann bleiben da natürlich Dinge auf der Strecke, die erst hinterher auffallen beim Compilieren oder noch später: die Dinge, die zur Laufzeit erzeugt werden, wie z.B. Mehrfachnutzung einer Table mit Setzen der Eigenschaften zur Laufzeit.


Leider kann ich nicht mehr sagen, wie lange ich dabeigesessen habe. Aber so 2 Monate waren das bestimmt.

Hawkeye219 3. Jan 2009 22:54

Re: Automatisches Ersetzten von VCL Komponenten in pas und d
 
Hallo Tobias,

Zitat:

Zitat von EDatabaseError
Kann ich irgentwas an UltraEdit verdrehen oder gibt es eine andere Möglichkeit alle DFMs in das Text DFM Format zu wandeln?

im bin-Verzeichnis deiner Delphi-Installation sollte sich ein Programm namens "convert.exe" befinden, das Formulare vom Binär- ins Textformat (und zurück) konvertieren kann. Wenn du es ohne Parameter aufrufst, erscheint eine kleine Hilfe.

Gruß Hawkeye

fkerber 3. Jan 2009 22:57

Re: Automatisches Ersetzten von VCL Komponenten in pas und d
 
Hi!

Jenachdem was schneller geht, tut es auch ein Rechtsklick im Formular und dort dann das Häkchen bei Text-DFM!


Ciao, Frederic

EDatabaseError 3. Jan 2009 23:31

Re: Automatisches Ersetzten von VCL Komponenten in pas und d
 
Bei 81 Dateien lohnt es sich convert zu nutzen. Einfacher Aufruf per convert -i -t C:\Delphiprojekt\*
Funktioniert spitze.

Tobi

Sunlight7 4. Jan 2009 03:12

Re: Automatisches Ersetzten von VCL Komponenten in pas und d
 
Zitat:

Zitat von Michael Habbe
Das heisst, konnte es auf Text umgestellt werden? :gruebel:

Nö, kann es nicht

Bebe 4. Jan 2009 09:57

Re: Automatisches Ersetzten von VCL Komponenten in pas und d
 
Liste der Anhänge anzeigen (Anzahl: 1)
Wie schon erwähnt hat GExpert diese Funktion. Damit kannst du auch alle Dateien in einem Projekt bearbeiten, habe ich aber nie ausprobiert. Ich habe lediglich Komponente für Komponente ausgetauscht und das funktioniert tadellos.

Siehe Anhang.

Gruß
Matze


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:27 Uhr.
Seite 2 von 4     12 34      

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-2025 by Thomas Breitkreuz