AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

RTL ändern und neu erstellen

Ein Thema von DelTurbo · begonnen am 14. Sep 2011 · letzter Beitrag vom 14. Sep 2011
Antwort Antwort
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.212 Beiträge
 
Delphi 2007 Architect
 
#1

RTL ändern und neu erstellen

  Alt 14. Sep 2011, 17:57
Hi,
ich möchte einige sachen (z.b. in der sysutils.pas lowercase ÄÖÜ mit reinehmen) ändern. Wie mache ich das? Bzw. wie bekomme ich das wieder sauber übersetzt? In google und hier im forum habe ich nix gefunden. Eventuell falsch gesucht?!?

Vielen dank im voraus
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#2

AW: RTL ändern und neu erstellen

  Alt 14. Sep 2011, 17:58
Ich will dich hiermit echt nicht davon abhalten das zu tun, aber an der Stelle eine Warnung: es ist eigentlich nie eine gute Idee die RTL oder VCL zu ändern und neu zu compilieren. Warum schreibst du nicht deine eigene Methode und nutzt diese?
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: RTL ändern und neu erstellen

  Alt 14. Sep 2011, 18:00
Geht nicht - gibt es nicht.

Schau dir aber mal die Hookingtechnik der TNTWare-Kompos an. Damit kannst du Funktionen der RTL mit eigenen Code überschreiben.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.212 Beiträge
 
Delphi 2007 Architect
 
#4

AW: RTL ändern und neu erstellen

  Alt 14. Sep 2011, 18:04
Ich weiss das das eine sache am "offenen Herzen" ist. Deswegen möchte ich ja auch wissen wie ich das wieder "sauber" übersetzt bekomme. Mein erster versuch ist kläglich gescheitert. Danach hatte ich gaaanz komige sachen. Z.b. konnte ich in einem Stream nicht 128 vom ende zurück gehen. Ich musste vorwärts gehen und von der länger 128 abziehen.

Aber das ist wohl wegen dem falschen neu übersetzen passiert. Deswegen möchte ich gerne wissen wie man das richtig macht.

EDIT: Öhm, geht das wirklich nicht?
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!

Geändert von DelTurbo (14. Sep 2011 um 18:05 Uhr) Grund: ROTER Kasten
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: RTL ändern und neu erstellen

  Alt 14. Sep 2011, 18:10
Gehen ist eine Sache, ob es sinnvoll ist eine andere...

Stell dir vor du willst den Quelltext z.B. jemandem weitergeben, schon funktioniert es dort nicht mehr sofort. (Von Inkompatibilitäten zwischen den Delphiversionen mal ganz zu schweigen.)

Und gerade dein Beispiel ist ja wohl eher ein Beispiel für einen Fall, in dem es absolut nicht sinnvoll wäre...
Hi,
ich möchte einige sachen (z.b. in der sysutils.pas lowercase ÄÖÜ mit reinehmen) ändern.
Wie bitte?
Eine Wrapperfunktion, die das in der SysUtils dann aufruft, fertig. Und schon geht es nicht nur mit Änderungen an der Delphiinstallation usw.

Nebenbei ein kleiner Tipp:
Nimm in diesem Fall einfach AnsiLowerCase statt LowerCase...
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von guinnes
guinnes

Registriert seit: 28. Feb 2007
Ort: Bottrop
265 Beiträge
 
Delphi 5 Enterprise
 
#6

AW: RTL ändern und neu erstellen

  Alt 14. Sep 2011, 18:17
Soweit ich mich erinnere kannst du die System.pas nicht compilieren, weil eine Datei fehlt. Alles andere sollte gehen, aber ich kann davon auch nur abraten.
z.B geht der Zirkus schon los, wenn du eine Komponente installieren willst, von der du den Quelltext nicht hast : "Die Unit xxx wurde mit einer anderen Version von xxx Kompiliert". Wenn es sich um Klassen handelt, die du erweitern willst, schreib dir Class Helper ( Ab Delphi 8 ), wenn du normale Proceduren ändern willst, schreib dir die einfach neu. Bei Proceduren und Functionen, die von der Kompiler-Magic benutzt werden, siehts wahrscheinlich ganz grau aus.

Dazu ändert sich schlagartig das Verhalten sämtlicher Komponenten. Die Wahrscheinlichkeit, daß die Komponenten noch funktionieren geht gegen 0
Glückauf

Geändert von guinnes (14. Sep 2011 um 18:24 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#7

AW: RTL ändern und neu erstellen

  Alt 14. Sep 2011, 18:46
Man könnte es zwar neu kompilieren, aber ich rate stark davon ab.

Sowas sollte man maximal für wichtige Bugfixes in Betracht ziehen.

Du willst aber das Verhalten einer Funktion ändern, welche nur auf ASCII ausgelegt ist.
AnsiLowerCase ist also die einzig "richtige" Lösung.
Installierst du irgendwann mal dein Delphi neu oder steigst du auf ein neues Delphi um, dann bekommst du arge Probleme, wenn man (nach Jahren) dann mal vergißt dieses wieder "anzupassen".
PS: Bei TDE und Delphi Starter kannst du es vergessen, da dir dort die Quelltexte fehlen.


Und willst du wirklich nur ASCII mit ÄÖÜ, dann erstell dir eine eigene Funktion (MyLowerCase) und lege sie in einer eigenen Unit ab.
$2B or not $2B

Geändert von himitsu (14. Sep 2011 um 18:50 Uhr)
  Mit Zitat antworten Zitat
CCRDude

Registriert seit: 9. Jun 2011
678 Beiträge
 
FreePascal / Lazarus
 
#8

AW: RTL ändern und neu erstellen

  Alt 14. Sep 2011, 20:35
Ich hab das mal gemacht, um D2006 wieder kompatibel mit Windows 95 zu machen.

Befriedigend fand ich das aber trotz allem nicht. Auch in Pro und Ent fehlten Dateien, um die Packages etwa neu zu übersetzen (ich glaube das entsprechende QC-Ticket ist heute noch offen ). Für den Rest habe ich halt den Suchpfad entsprechend erweitert und die Binärversionen gelöscht. Trotzdem - je nach Umfang der Änderungen scheiterte es an einer rekursiven Nutzung von Variants (oder so ähnlich, ist ne Weile her).

Für den Anwendungsfall hier kann ich daher auch nur dringend anraten, die Finger davon zu lassen. Selbst ohne AnsiLowerCase würde ich in solchen Fällen höchstens eine Kopie der Funktion aus SysUtils.pas machen und diese Kopie in meiner eigenen Unit anpassen. Dann sorgt die Reihenfolge der Unit-Einbindungen dafür, daß ich nur am Kopf etwas ändern muss und nicht jeden einzelnen Aufruf - fertig.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: RTL ändern und neu erstellen

  Alt 14. Sep 2011, 21:03
Du kannst die von Borland/Codegear/Embadings Delphi-Packages nicht neu übersezten. Damit wäre sonst die absolute BPL-Hölle angesagt wenn dann diese BPL nicht nur in den Versionen "Ursprungslieferung", "SP1", "SP" für jede Delphi-Version vorlägen sondern auch in Packageversion "SP2-Entwickler-Herbert", "SP2a-Entwickler-Hubert".

Du kannnst (solltest jedenfalls) die Packages in neuer Zusammensetzung bereit stellen um gegen sie zu kompiliern. Auch ist es möglich (Durch Speichern der angepassten Units in entsprechende Dxxx-Patch-Diretories) gegen diese angepassten Units zu kompilieren wenn man keine Laufzeitpackages verwenden will.

Und wie gesagt: Schau dir TNT an um zu sehen wie dort Funktionen "gepatcht" werden (Hab selbst ein paar eigene entsprechend eingbaut um Fehlverhalten der RTL fixen).


Übrigens: Lässt es Microsoft zu das die MFC/ATL-Dlls jeder x-Beliebige user Neu compiliern kann um seine persönlichen Patches bereitzustellen?
Und kannst du .NET oder JRE selbst übersetzen?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.212 Beiträge
 
Delphi 2007 Architect
 
#10

AW: RTL ändern und neu erstellen

  Alt 14. Sep 2011, 21:55
Erstmal vielen dank. Ihr habt natürlich recht. Da ich nicht beratungsresistent bin, lass ich mal die finger davon. Beim abwägen vom für und wieder dieser sache fällt einem auf das es eine "schnapsidee" war.

Auch das mit den Komponenten die dann rum meckern das die version nichtmehr stimmt, würde mir garnicht gefallen. Daran hatte ich garnicht gedacht.

Manchmal meint man, man(n) hätte eine gute idee. Im nachhinein muss man(n) aber einsehen das es blödsinn war.

Vielen dank an euch.
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:52 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