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

 Delphi Discussion :

Erreur inconnu dans delphi 7


Sujet :

Delphi

  1. #1
    Membre du Club
    Erreur inconnu dans delphi 7
    Salut tous le monde, je viens de rencontrer une erreur qui m'a vraiment cassé la tête, j'ai développer une application elle marche super bien, quand je voulais l'ouvrir avec delphi et je l'ai recompiler à nouveau parce que j'ai effacé l'exécutable par erreur elle m'a apparu cette erreur sachant que j'ai rien modifier et j'ai essayé de réinstaller delphi avec tous les composants avec lequel j'ai développer mon application mais je rencontré la même erreur même j'ai réinstaller tous le système mais le problème existe toujours.

    Voila le message d'erreur


    et ce problème m'arrive quand je voulais manipuler les tables de la base de données de l'application.

    Merci de m'aider à résoudre ce problème.

  2. #2
    Rédacteur/Modérateur

    Bonjour
    Vérifiez que votre base de données n'est pas active avant de compiler
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  3. #3
    Membre du Club
    Citation Envoyé par SergioMaster Voir le message
    Bonjour
    Vérifiez que votre base de données n'est pas active avant de compiler
    Bonjour, je l'ai activer et compiler toujours la même erreur et je l'ai désactiver et recompiler toujours la même erreur !!!

  4. #4
    Rédacteur/Modérateur

    Une fois la base de données désactivée, construisez le programme ou faite une légère modification dans le programme avant la re compilation. À ma souvenance, changer simplement l'état de connexion n'est pas suffisant pour forcer Delphi à compiler l'unité ainsi modifiée
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  5. #5
    Membre du Club
    Citation Envoyé par SergioMaster Voir le message
    À ma souvenance, changer simplement l'état de connexion n'est pas suffisant pour forcer Delphi à compiler l'unité ainsi modifiée
    Quand je compile l'application elle se compile sans aucune erreur mais une fois l'application est lancée et quand je commence à l'utiliser elle m’apparaît cette erreur vraiment je ne sais plus quoi faire, j'ai même reconstruit la base de données et rien n'a changé

  6. #6
    Rédacteur/Modérateur

    J'ai souvent eu le problème à cause d'une base de données ouverte au design, je pensais qu'il s'agissait de ce problème.
    Si ce n'est pas ça, désolé mais je ne vois pas
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  7. #7
    Membre du Club
    On cherchant dans mon code j'ai trouver que le problème ce trouve dans le fichier du projet dans le code que j'ai ajouté que je vais le citer après
    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
    program LGCM;
     
    uses
      Dialogs,
      Windows,
      Forms,
      Principale in 'Principale.pas' {Form1},
      Patient in 'Patient.pas' {Patient},
      Medecin in 'Medecin.pas' {Form3},
      Ordonnance in 'Ordonnance.pas' {Form4},
      Ordonnance_QR in 'Ordonnance_QR.pas' {Form5},
      Medicament in 'Medicament.pas' {Form6},
      caisse in 'Caisse.pas' {Form17},
      Rapport_medical in 'Rapport_medical.pas' {Form7},
      Rapport_QR in 'Rapport_QR.pas' {Form8},
      Certificat_medical in 'Certificat_medical.pas' {Form9},
      Certificat_QR in 'Certificat_QR.pas' {Form10},
      Maladie in 'Maladie.pas' {Form11},
      Imp_old_ord in 'Imp_old_ord.pas' {Form12},
      a_propos in 'a_propos.pas' {Form13},
      Imp_old_RM in 'Imp_old_RM.pas' {Form14},
      Imp_old_CM in 'Imp_old_CM.pas' {Form15};
     
    {$R *.res}
    var form1: Tform1;
    	H : THandle;
    	Erreur: Integer;
     
    begin
      SetLastError(NO_ERROR);
      H := CreateMutex (nil, False, 'Nom de l application');
      Erreur := GetLastError;
      if ( Erreur = ERROR_ALREADY_EXISTS ) or ( Erreur = ERROR_ACCESS_DENIED ) then
      begin
     
      showmessage('Application est déjà* lancée, vous ne pouvez pas lancer une deuxième instance');
      Exit;
      end;
      Application.Initialize;
      Application.CreateForm(TForm1, Form1);
      Application.CreateForm(TForm3, Form3);
      Application.CreateForm(TForm4, Form4);
      Application.CreateForm(TForm5, Form5);
      Application.CreateForm(TForm6, Form6);
      Application.CreateForm(TForm7, Form7);
      Application.CreateForm(TForm17, Form17);
      Application.CreateForm(TForm11, Form11);
      Application.CreateForm(TForm8, Form8);
      Application.CreateForm(TForm9, Form9);
      Application.CreateForm(TForm10, Form10);
      Application.CreateForm(TForm12, Form12);
      Application.CreateForm(TForm13, Form13);
      Application.CreateForm(TForm14, Form14);
      Application.CreateForm(TForm2, Form2);
      Application.CreateForm(TForm15, Form15);
      Application.Run;
    end.


    Voilà le code qui a causer cette erreur parce que quand je l'ai supprimer l'application marche sans aucune erreur

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    var form1: Tform1;
    	H : THandle;
    	Erreur: Integer;
     
    begin
      SetLastError(NO_ERROR);
      H := CreateMutex (nil, False, 'Nom de l application');
      Erreur := GetLastError;
      if ( Erreur = ERROR_ALREADY_EXISTS ) or ( Erreur = ERROR_ACCESS_DENIED ) then
      begin
     
      showmessage('Application est déjà* lancée, vous ne pouvez pas lancer une deuxième instance');
      Exit;
      end;


    comment le fixer ?

  8. #8
    Membre éprouvé
    @ bm1990,

    Pour éviter une deuxième instance moi je fais ceci dans l'unité du projet:

    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
     
    uses
      Windows, Forms,
      Unit1 in 'Unit1.pas' {Form1};
     
    {$R *.RES}
    var
    	H : THandle;
    	Erreur: Integer;
    begin
      SetLastError(NO_ERROR);
      H := CreateMutex (nil, False, 'Nom de l application');
      Erreur := GetLastError;
      if ( Erreur = ERROR_ALREADY_EXISTS ) or ( Erreur = ERROR_ACCESS_DENIED )
        then Exit;
      Application.Initialize;
      Application.CreateForm(TForm1, Form1);
      Application.Run;
      CloseHandle(H);
    end.



    Donc ajouter après Application.Run;
    CloseHandle(H); //ici


    @+,


    cincap

  9. #9
    Membre du Club
    Merci @cincap le problème est résolu.

  10. #10
    Expert éminent sénior
    TForm1 à TForm17 ?
    Comment peut-on envisager de maintenir ça ?
    Ton maitre d'apprentissage en fait pas de revue de code avec toi ?
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs