IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

[Traduction] probleme de declaration


Sujet :

Langage Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 29
    Points : 23
    Points
    23
    Par défaut [Traduction] probleme de declaration
    'alut tous !!!

    bon 1 little soucy pour la traduction de mon appli....

    j'ai suivi le didacticiel de Eric Sibert sur le site..... nickel..... 8)

    Sauf qd j'arrive à la fin !!!!!

    et là schpaffff !!!!
    [Erreur] Traduction.pas(90): Identificateur non déclaré : 'LoadNewResourceModule'
    [Erreur] Traduction.pas(91): Identificateur non déclaré : 'ReinitializeForms'
    : :
    les 2 fonctions appelées pour le changement de langue ne sont pas déclarées...
    et bien évidemment rien ds "aide delphi", ni ds "outils delphi" ni ds "sdk windows"......;

    escke qlq 1 aurait une idée de koi esce donc kil se passe ???
    ou y a t il une importation particulière que j'ai oublié !!!!
    (ah oui precision , je suis en Delphi 5 entreprise sous win98)

    Merci d'av.
    Et n'oubliez pas les tags et balises adaptés dans vos titres et posts...
    et merci @tous

  2. #2
    Membre éclairé

    Homme Profil pro
    Fondateur de ZetaPush - realtime BaaS
    Inscrit en
    Mars 2002
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Fondateur de ZetaPush - realtime BaaS
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 146
    Points : 687
    Points
    687
    Par défaut
    As tu mis l'unité ReInit dans ton projet?

    Les 2 déclarations sont dans cette unité:
    procedure ReinitializeForms;
    function LoadNewResourceModule(Locale: LCID): Longint;

    Voici l'unité en question:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
     
    unit UnitReInit;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms;
     
    procedure ReinitializeForms;
    function LoadNewResourceModule(Locale: LCID): Longint;
     
    implementation
     
    type
      TAsInheritedReader = class(TReader)
      public
        procedure ReadPrefix(var Flags: TFilerFlags; var AChildPos: Integer); override;
      end;
     
    procedure TAsInheritedReader.ReadPrefix(var Flags: TFilerFlags; var AChildPos: Integer);
    begin
      inherited ReadPrefix(Flags, AChildPos);
      Include(Flags, ffInherited);
    end;
     
    function SetResourceHInstance(NewInstance: Longint): Longint;
    var
      CurModule: PLibModule;
    begin
      CurModule := LibModuleList;
      Result := 0;
      while CurModule <> nil do
      begin
        if CurModule.Instance = HInstance then
        begin
          if CurModule.ResInstance <> CurModule.Instance then
            FreeLibrary(CurModule.ResInstance);
          CurModule.ResInstance := NewInstance;
          Result := NewInstance;
          Exit;
        end;
        CurModule := CurModule.Next;
      end;
    end;
     
    function LoadNewResourceModule(Locale: LCID): Longint;
    var
      FileName: array [0..260] of char;
      P: PChar;
      LocaleName: array[0..4] of Char;
      NewInst: Longint;
    begin
      GetModuleFileName(HInstance, FileName, SizeOf(FileName));
      GetLocaleInfo(Locale, LOCALE_SABBREVLANGNAME, LocaleName, SizeOf(LocaleName));
      P := PChar(@FileName) + lstrlen(FileName);
      while (P^ <> '.') and (P <> @FileName) do Dec(P);
      NewInst := 0;
      Result := 0;
      if P <> @FileName then
      begin
        Inc(P);
        if LocaleName[0] <> #0 then
        begin
          // Then look for a potential language/country translation
          lstrcpy(P, LocaleName);
          NewInst := LoadLibraryEx(FileName, 0, LOAD_LIBRARY_AS_DATAFILE);
          if NewInst = 0 then
          begin
            // Finally look for a language only translation
            LocaleName[2] := #0;
            lstrcpy(P, LocaleName);
            NewInst := LoadLibraryEx(FileName, 0, LOAD_LIBRARY_AS_DATAFILE);
          end;
        end;
      end;
      if NewInst <> 0 then
        Result := SetResourceHInstance(NewInst)
    end;
     
    function InternalReloadComponentRes(const ResName: string; HInst: THandle; var Instance: TComponent): Boolean;
    var
      HRsrc: THandle;
      ResStream: TResourceStream;
      AsInheritedReader: TAsInheritedReader;
    begin                   { avoid possible EResNotFound exception }
      if HInst = 0 then HInst := HInstance;
      HRsrc := FindResource(HInst, PChar(ResName), RT_RCDATA);
      Result := HRsrc <> 0;
      if not Result then Exit;
      ResStream := TResourceStream.Create(HInst, ResName, RT_RCDATA);
      try
        AsInheritedReader := TAsInheritedReader.Create(ResStream, 4096);
        try
          Instance := AsInheritedReader.ReadRootComponent(Instance);
        finally
          AsInheritedReader.Free;
        end;
      finally
        ResStream.Free;
      end;
      Result := True;
    end;
     
    function ReloadInheritedComponent(Instance: TComponent; RootAncestor: TClass): Boolean;
     
      function InitComponent(ClassType: TClass): Boolean;
      begin
        Result := False;
        if (ClassType = TComponent) or (ClassType = RootAncestor) then Exit;
        Result := InitComponent(ClassType.ClassParent);
        Result := InternalReloadComponentRes(ClassType.ClassName, FindResourceHInstance(
          FindClassHInstance(ClassType)), Instance) or Result;
      end;
     
    begin
      Result := InitComponent(Instance.ClassType);
    end;
     
    procedure ReinitializeForms;
    var
      Count: Integer;
      I: Integer;
      Form: TForm;
    begin
      Count := Screen.FormCount;
      for I := 0 to Count - 1 do
      begin
        Form := Screen.Forms[I];
        ReloadInheritedComponent(Form, TForm);
      end;
    end;
     
    end.
    A+ et bon courage car j'ai eu d'énormes problèmes avec le module de traduction de Delphi (Version 5 et Version 6). Maintenant j'utilise des composants spécialisés tsiLang et c'est vraiment beaucoup mieux.
    ZetaPush: realtime BaaS www.zetapush.com

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 29
    Points : 23
    Points
    23
    Par défaut essai
    p'ti copier coller et j'essaie ca tout de suite !!!!
    Et n'oubliez pas les tags et balises adaptés dans vos titres et posts...
    et merci @tous

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 29
    Points : 23
    Points
    23
    Par défaut
    Citation Envoyé par Morvan Mikael
    ....énormes problèmes avec le module de traduction de Delphi (Version 5 et Version 6).
    Ouais tu m'etonnes des problemes !!!!

    merci pour l'unit ki va bien...
    par contre, mdr, pour connaitre les langues et attribuer la langue select j'utilise les fonctions du didacticiel

    et dis moi pas ke c pas vré , ca marche sur l'evenement on click d'un bouton mais pas sur le onCreate de ma form !!!

    c pas de l'alucinatotale ca !!!!

    bon allez on va regler ca
    @+ et bon dev'
    Et n'oubliez pas les tags et balises adaptés dans vos titres et posts...
    et merci @tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme de traduction d'une declaration Delphi
    Par blondelle dans le forum C++Builder
    Réponses: 7
    Dernier message: 26/10/2008, 20h43
  2. Problème de déclaration de tableaux
    Par BenjaminLustrement dans le forum C++/CLI
    Réponses: 6
    Dernier message: 23/06/2006, 16h21
  3. [C++] Probleme de declaration
    Par raboin dans le forum C++
    Réponses: 16
    Dernier message: 22/04/2006, 09h22
  4. [xml et xsd ] probleme de declaration
    Par TabrisLeFol dans le forum Valider
    Réponses: 3
    Dernier message: 02/11/2005, 10h22
  5. Réponses: 11
    Dernier message: 02/05/2005, 19h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo