Oh dann wäre der Source in System.pas wohl auch falsch. Nein ist nicht so.
Oben schrieb ich das in der Initialization Sektion einer
Unit für alle ResourcenStrings eienr
Unit deren PResStringRec per LoadResString() initialisiert werden. Der Borland
RTL Code verändert also schon beim Laden der
Unit diesen Record.
Das ist ja auch das was es zum Problem macht. Man muß quasi den Code in
Unit System.pas + SysInit.pas patchen, so das wir noch vor dem Aufruf der Initialization Funktion einer
Unit die noch nicht modifizierten PResStringRecs auslesen können.
Die einfachste Lösung ist es die fuck Fehlernummer in den String selber zu packen. Vor der Anzeige dieses Strings wird er entfernt. Und der Russisch Übersetzer bekommt den Hinweis daran nichts zu übersetzen. Um das automatisiert zu machen, benutzt du die *.DRC Dateien indem du extern mit'ner kleinen Software parst. Bei diesem Vorgang setzt du die ResourceID zum String als Nummer in den String selber, in der *.PAS Datei natürlich. Das wäre dann ein sauber nachvolziehbarer Weg ohne Tricks.
Der schmutzige Weg bedeutet
1.) per Tricks den Start der PResStringRec Tabelle der
Unit rausbekommen, das habe ich schon mal
2.) nun bevor die
Unit beim Programstart/Laden des Modules (
DLL,
Package) die Initialization Sektion aufgerufen bekommt, erfolgt durch Code in System/SysInit, die PResStringRecs auszulesen. Dazu muß der InitCode aus System.pas gepatcht werden, heist zur Laufzeit verändern wir den Code der
Unit System. Das ist ein sehr schlechtes Vorgehen.
Gruß Hagen