Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.434 Beiträge
 
Delphi 12 Athens
 
#11

AW: Delphi 7 32-Bit unter Windows 10/11 64-Bit Pro (.DEU und .ENU Dateien) CRASH

  Alt 26. Jul 2023, 13:17
In der D7 Hilfe ist dazu folgendes zu finden:
Zitat:
Eine Ressourcen-DLL kann nicht nur beim Start einer Anwendung geladen werden, sondern es ist auch möglich, die verwendete Ressourcen-Datei zur Laufzeit zu wechseln. Wenn Sie Ihre Anwendung mit dieser Funktionalität versehen wollen, nehmen Sie in die uses-Anweisung die Unit ReInit auf. (Diese Unit befindet sich im Verzeichnis Demos im Richedit-Beispiel.) Um die verwendete Sprache zu wechseln, übergeben Sie in einem Aufruf von LoadResourceModule die LCID für die neue Sprache und rufen anschließend ReinitializeForms auf.

Mit den folgenden Anweisungen können Sie die Sprache der Benutzeroberfläche in Französisch ändern:

Delphi-Quellcode:
const
  FRENCH = (SUBLANG_FRENCH shl 10) or LANG_FRENCH;
if LoadNewResourceModule(FRENCH) <> 0 then
  ReinitializeForms;
Dieses Vorgehen hat den Vorteil, dass die aktuelle Instanz der Anwendung mit allen zugehörigen Formularen verwendet werden kann. Dabei ist weder eine Aktualisierung von Registrierungseinstellungen mit anschließendem Neustart der Anwendung noch die erneute Anforderung von benötigten Ressourcen (z.B. das Anmelden bei einem Datenbank-Server) erforderlich.

Bei einem Wechsel der Ressourcen-DLL werden die Eigenschaftswerte in den laufenden Instanzen der Formulare durch die entsprechenden Eigenschaftswerte der neuen DLL ersetzt.

Hinweis

Änderungen, die zur Laufzeit an den Formulareigenschaften vorgenommen wurden, gehen verloren. Nach dem Laden der neuen DLL werden keine Standardwerte zurückgesetzt. Sie dürfen deshalb im Quelltext nie davon ausgehen, dass die Formularobjekte automatisch mit ihrem Anfangsstatus neu initialisiert werden.
Die entsprechende Unit reinit.pas habe ich mal angehängt.
Angehängte Dateien
Dateityp: pas reinit.pas (3,5 KB, 6x aufgerufen)
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat