TXMLDocument et EDomParseError
Bonjour à tous
Je suis actuellement en train de rendre mon programme multilangue.
j'ai donc différent fichier XML contenant les captions des boutons et autres affichages de mon application (un par langue).
Au démarrage de mon application, je charge le document XML correspondant a la langue stocké dans un fichier ini et je renseigne tous les captions. Là pas de problème.
Je veux donné la possibilité a l'utilisateur de changer cette langue quand il le désire. J'ai donc un menu me permettant de faire cela, qui appelle les même fonctions que lors du premier chargement du programme et ainsi charger les captions de la langue correspondante.
Or, lors d'un changement de langue, j'ai une erreur EDomParseError
Est-ce que quelqu'un saurais d'où peut venir le problème.
Voici mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
// Méthode qui charge les Caption des composants
bool __fastcall TMainForm::ChargerCaption(void)
{
// Chemin pour le fichier de langue
AnsiString CheminFichierLang = ExtractFilePath(Application->ExeName) + "\Lang\\";
// On fini de construire le chemin pour le fichier de langue
CheminFichierLang += Langue;
CheminFichierLang += ".lang";
// On récupère le contenu du fichier XML
DocumentXML->LoadFromFile(CheminFichierLang);
// On active le document
DocumentXML->Active = true;
// On récupère la racine du document
_di_IXMLNode Racine = DocumentXML->DocumentElement;
....
} |
L'erreur se produit lorsque je veux récupérer la racine.
Voici l'appel dans le constructeur de l'application pour le premier chargement
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
// On charge la langue
Language(); // Méthode qui récupère la langue dans le fichier ini
// On charge les captions
if(!ChargerCaption())
{
ShowMessage("Erreur dans le fichier de langue !");
// On vide le document XML
DocumentXML->XML->Clear();
// On désactive le document
DocumentXML->Active = false;
Application->Terminate();
}
// On vide le document XML
DocumentXML->XML->Clear();
// On désactive le document
DocumentXML->Active = false; |
Merci d'avance pour votre aide.