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

Composants VCL Delphi Discussion :

Delphi 7 : Classe Non Enregistrée. Que faut-il faire ?


Sujet :

Composants VCL Delphi

  1. #1
    Invité de passage
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3
    Par défaut Delphi 7 : Classe Non Enregistrée. Que faut-il faire ?
    https://stackoverflow.com/questions/...mport-sapi-5-1

    J'ai trouvé ce programme qui me semble intéressant :

    Code Delphi : 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
    unit Unit3;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, SpeechLib_TLB, StdCtrls;
     
    const SP_GETWHOLEPHRASE = -1;
     
    type
      TForm3 = class(TForm)
        Memo1: TMemo;
        procedure FormCreate(Sender: TObject);
        procedure FormClose(Sender: TObject; var Action: TCloseAction);
      private
        { Private-Deklarationen }
      public
        SpSharedRecoContext1: TSpSharedRecoContext;
        MyGrammar : ISpeechRecoGrammar;
        procedure SpSharedRecoContext1Recognition(ASender: TObject;
                                                  StreamNumber: Integer;
                                                  StreamPosition: OleVariant;
                                                  RecognitionType: SpeechRecognitionType;
                                                  const Result: ISpeechRecoResult);
        procedure SpSharedRecoContext1Hypothesis(ASender: TObject;
                                                 StreamNumber: Integer;
                                                 StreamPosition: OleVariant;
                                                 const Result: ISpeechRecoResult);
        { Public-Deklarationen }
      end;
     
    var
      Form3: TForm3;
     
    implementation
     
    {$R *.dfm}
     
    procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
     SpSharedRecoContext1.Free;
    end;
     
    procedure TForm3.FormCreate(Sender: TObject);
    begin
      SpSharedRecoContext1 := TSpSharedRecoContext.Create(self);
      SpSharedRecoContext1.OnRecognition   := SpSharedRecoContext1Recognition;
      SpSharedRecoContext1.OnHypothesis    := SpSharedRecoContext1Hypothesis;
      MyGrammar := SpSharedRecoContext1.CreateGrammar(0);
      MyGrammar.DictationSetState(SGDSActive);
    end;
     
    procedure TForm3.SpSharedRecoContext1Recognition(ASender: TObject;
                                                     StreamNumber: Integer;
                                                     StreamPosition: OleVariant;
                                                     RecognitionType: SpeechRecognitionType;
                                                     const Result: ISpeechRecoResult);
    begin
     Caption := '';
     Memo1.Lines.Add(Result.PhraseInfo.GetText(SP_GETWHOLEPHRASE,SP_GETWHOLEPHRASE,true));
    end;
     
    procedure TForm3.SpSharedRecoContext1Hypothesis(ASender: TObject;
                                                    StreamNumber: Integer;
                                                    StreamPosition: OleVariant;
                                                    const Result: ISpeechRecoResult);
    begin
     Caption := 'I am listening...';
    end;
     
     
    end.

    Il se compile bien sous Delphi 7 mais en le lançant, il affiche :

    "Project raised exception class EOleSysError with message 'Classe non enregistrée'. Process stopped. Use step or Run to Continue."
    Tout ce qui touche SpeechLib_TLB aboutit toujours à 'Classe Non Enregistrée'. Et pourtant j'ai enregistré toutes les DLL possibles avec REGSVR32. J'ai SAPI 5.1 sur mon ordinateur. Je n'arrive pas à trouver SAPI 5.4. Je suis sous Windows XP et j'ai essayé sur Windows 8.1 et c'est le même problème. Quelqu'un a-t-il une solution svp ?

    N.B. : J'ai essayé la solution de StackOverFlow et c'est toujours un échec. Que faut-il faire ?

  2. #2
    Membre chevronné Avatar de der§en
    Homme Profil pro
    Chambord
    Inscrit en
    Septembre 2005
    Messages
    1 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Chambord
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 245
    Par défaut
    Peut-être que la classe dont il est question dans le message d’erreur, et la classe Delphi produite à partir de tes DLL et pas l’enregistrement des DLL dans le système .

  3. #3
    Invité
    Invité(e)
    Par défaut
    Si tout est installé correctement, importer la version installée à partir de : "Projet->Importer une bibliothèque de type" sélectionner Microsoft Speech Object ..

    Après cliquer sur "Créer l'unité"

    Ainsi tu auras la version présente sur le PC .

  4. #4
    Invité de passage
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3
    Par défaut Je n'ai pas compris votre message
    Citation Envoyé par der§en Voir le message
    Peut-être que la classe dont il est question dans le message d’erreur, et la classe Delphi produite à partir de tes DLL et pas l’enregistrement des DLL dans le système .
    Est-il possible d'expliciter votre réponse et me donner une solution complète, pas à pas, car je ne suis pas très bon dans ce domaine.

  5. #5
    Membre expérimenté
    Avatar de XeGregory
    Homme Profil pro
    Passionné par la programmation
    Inscrit en
    Janvier 2017
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Passionné par la programmation
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2017
    Messages : 678
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par tutorial Voir le message
    Est-il possible d'expliciter votre réponse et me donner une solution complète, pas à pas, car je ne suis pas très bon dans ce domaine.
    Citation Envoyé par tutorial Voir le message
    J'ai trouvé ce programme qui me semble intéressant
    Le copier-coller en programmation, c’est comme tricher à un examen : tu obtiens une réponse, mais tu ne comprends rien.

    En programmation, le vrai apprentissage vient de la compréhension : savoir pourquoi une ligne de code fonctionne, ce qu’elle fait, et comment elle interagit avec le reste du programme. Copier sans réfléchir peut fonctionner temporairement, mais cela freine la progression et la capacité à résoudre des problèmes par soi-même.

Discussions similaires

  1. Erreur : Classe non enregistré
    Par thomasaurelien dans le forum VB.NET
    Réponses: 5
    Dernier message: 13/09/2012, 22h58
  2. Classe non enregistré
    Par cyriltec dans le forum C#
    Réponses: 8
    Dernier message: 26/03/2010, 15h44
  3. [comtypes] com_error:((-2147221164),'Classe non enregistré')
    Par FabriceRR dans le forum Interfaçage autre langage
    Réponses: 2
    Dernier message: 16/04/2008, 13h38
  4. Réponses: 3
    Dernier message: 24/01/2006, 10h20
  5. [juridique] Que faut-il faire pour etre mandataire?
    Par Death83 dans le forum Droit
    Réponses: 5
    Dernier message: 24/11/2005, 18h09

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