AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Falsche Ressource-DLL bei Sprachumstellung
Thema durchsuchen
Ansicht
Themen-Optionen

Falsche Ressource-DLL bei Sprachumstellung

Ein Thema von kerem.demir · begonnen am 13. Feb 2013
Antwort Antwort
kerem.demir

Registriert seit: 29. Okt 2012
3 Beiträge
 
#1

Falsche Ressource-DLL bei Sprachumstellung

  Alt 13. Feb 2013, 12:12
Hallo zusammen,

ich habe mich erst neu in das Themengebiet der Lokalisierung von Anwendungen eingearbeitet, versuche
mein Problem aber möglichst verständlich zu erläutern.

Mein Projekt besteht aus einem Hauptprogramm(Main.exe) und mehreren BPLs(z.B. Package.bpl) die zur Laufzeit dynamisch geladen werden. Sowohl EXE als auch DLLs enthalten Formulare. Zusätzlich zu der EXE und den BPLs gibt es die entsprechenden Resource-DLLs(Main.DE, Main.EN, Package.DE, Package.EN) für die Spracheinstellung. Man hat nun die Möglichkeit, bei Aufruf über die Kommandozeile, die Anwendung in einer anderen Sprache zu starten (z.B. Main.exe /en). Dieser Mechanismus wird vorallem für Testzwecke verwendet.

Realisiert wurde das Ganze ungefähr so:

Im Konstruktor des Hauptfensters wird aus dem Schlüssel

HKEY_CURRENT_USER\Software\Embarcadero\Locales

die gegenwärtige Spracheinstellung gelesen. Falls diese nicht mit dem übergebenen Parameter übereinstimmt, wird die Sprache über den folgenden Mechanismus gewechselt.

if (LoadNewResourceModule(FRENCH)) ReinitializeForms(); (siehe http://docwiki.embarcadero.com/RADSt...misch_wechseln)

Die neue Spracheinstellung wird dann über den obigen Schlüssel in der Registry festgehalten.

Dieser Mechanismus hat bisher (BCB2006) immer Funktioniert. Seit dem ich aber XE2 verwende, tritt folgendes Phänomen auf:

Beim ersten Wechsel der Sprache (über Kommandozeile)wird das Hauptfenster in der richtigen Sprache dargestellt, die Fenster aus den geladenen Packages aber nicht. Erst wenn man diesen Vorgang wiederholt, stimmt die Sprache auch für die Fenster aus den BPLs.

Erstaunlich ist, dass zum Zeitpunkt an dem die BPL geladen wird, in der Registry der richtige Eintrag steht. Es scheint ausschlaggebend zu sein, was beim Start der Hauptanwendung in der Registry stand.

Da ich schon seit Tagen nach einer Lösung suche, hoffe ich, dass sich jemand findet, der ähnliches schon erlebt hat oder mir einen Anhaltspunkt geben kann.

Freundliche Grüße
Kerem
  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 21:56 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