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

Ada Discussion :

Gtkada raised STORAGE_ERROR


Sujet :

Ada

  1. #1
    Membre du Club
    Homme Profil pro
    chômeur
    Inscrit en
    Septembre 2015
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : chômeur

    Informations forums :
    Inscription : Septembre 2015
    Messages : 175
    Points : 62
    Points
    62
    Par défaut Gtkada raised STORAGE_ERROR
    Bonjour,

    J'ai un programme en fenêtre avec Gtkada , après exécution mon compilateur affiche l'erreur suivante :

    raised STORAGE_ERROR : stack overflow (or erroneous memory access)

    Est-ce que cette erreur peut être due a un problème de memoire dans le gestion de fichiers ?

    Dans le code j'indique un icone de fenêtre, son nom est "un.png". Cependant je ne l'ai volontairement pas placé dans le même répertoire que mon code source pour tester une exception.

    Ma fenêtre n'est pas exécutée et l'exception est ignorée, pourquoi ?


    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
    WITH Gtk.Main ;          USE Gtk.Main ; 
     
    WITH Gtk.Window ;        USE Gtk.Window ;
     
    WITH Gtk.Enums ;         USE Gtk.Enums ; 
     
    WITH Ada.Text_IO;        USE Ada.Text_IO ;
     
    WITH Gtk.Button ;        USE Gtk.Button ; 
     
    PROCEDURE transparent IS
     
       Win : Gtk_Window ;
     
       Bouton : Gtk_Button ; 
     
       LOADING_ERROR : EXCEPTION ; 
     
    BEGIN
     
       Init ; 
     
       Gtk_New(Win,Window_Toplevel) ; 
     
       Win.Set_Title("fenêtre") ; 
     
       Win.Set_Default_Size(600,600) ; 
     
       win.set_position(win_pos_center) ; 
     
       Win.Set_Keep_Above(True) ;
     
       Win.Set_Opacity(0.0) ; 
     
      IF NOT win.Set_Icon_From_File("un.png") 
     
             THEN RAISE LOADING_ERROR ; 
     
    END IF ; 
     
       Gtk_New(Bouton) ; 
     
       win.add(Bouton) ;
     
       Win.Show ;
     
       Bouton.show ;
     
       Main ;
     
    EXCEPTION
     
       WHEN LOADING_ERROR => Put_line("L'icone n'a pas pu être chargé") ;
     
    END transparent ;

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    C'est parce qu'à l'appel de Set_Icon... l'erreur est levé en dehors du bloc if then.

    Je te propose ceci :
    Code ada : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    begin
          IF win.Set_Icon_From_File("gnus.png") then
     
             Put_line("L'icone a pu être chargé..") ;
          else
             raise LOADING_ERROR ;
          end if;
       exception
          when others =>
          raise LOADING_ERROR ;
     
       end;

  3. #3
    Membre du Club
    Homme Profil pro
    chômeur
    Inscrit en
    Septembre 2015
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : chômeur

    Informations forums :
    Inscription : Septembre 2015
    Messages : 175
    Points : 62
    Points
    62
    Par défaut
    Merci

    Donc si j'ai bien compris ton exemple, on peut utiliser aussi If Not en faisant :

    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
     IF NOT win.Set_Icon_From_File("un.png") 
     
             THEN Put_line("L'icone n'a pas pu être chargé") ; 
    else 
    	RAISE LOADING_ERROR ; 
     
       END IF ; 
     
       Main ;
     
    EXCEPTION
     
       WHEN OTHERS => RAISE LOADING_ERROR ;
     
    END  ;
    Cependant je reçois l'erreur : raised LOADING_ERROR à la ligne 13 et je n'ai toujours pas le put_line ni de fenêtre en affichage .

  4. #4
    Invité
    Invité(e)
    Par défaut
    ben place ton fichier png dans le répertoire d'appel de ta fenêtre, à mon avis, tu as dis toi même que tu avais fait exprès.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Non mais non, si j'ai écris autre chose que toi c'est pas pour rien.

  6. #6
    Membre du Club
    Homme Profil pro
    chômeur
    Inscrit en
    Septembre 2015
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : chômeur

    Informations forums :
    Inscription : Septembre 2015
    Messages : 175
    Points : 62
    Points
    62
    Par défaut
    Je sais que si tu as écris autre chose que moi c'est pas pour rien.

    En fait j'avais mal compris, je pensais que lorsqu'on utilisait une "exception" cela permettait tout de même d'afficher une fenêtre mais apparemment pas.

    Ce que je veux faire c'est afficher le texte "L'icone n'a pas pu être chargé" en ligne de commande lorsque l'icone ne peut pas être chargé, et en même temps afficher quand même une fenêtre sans icone.

    Voilou

  7. #7
    Invité
    Invité(e)
    Par défaut
    Voici ton code avec le mien pour ouvrir la fenêtre malgré l'absence de l'icone.
    Code ada : 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
     
    WITH Gtk.Main ;          USE Gtk.Main ;
     
    WITH Gtk.Window ;        USE Gtk.Window ;
     
    WITH Gtk.Enums ;         USE Gtk.Enums ;
     
    WITH Ada.Text_IO;        USE Ada.Text_IO ;
     
    WITH Gtk.Button ;        USE Gtk.Button ;
     
    PROCEDURE transparent IS
     
       Win : Gtk_Window ;
     
       Bouton : Gtk_Button ;
     
       LOADING_ERROR : EXCEPTION ;
     
    BEGIN
     
       Init ;
     
       Gtk_New(Win,Window_Toplevel) ;
     
       Win.Set_Title("fenêtre") ;
     
       Win.Set_Default_Size(600,600) ;
     
       win.set_position(win_pos_center) ;
     
       Win.Set_Keep_Above(True) ;
     
       Win.Set_Opacity(0.0) ;
       begin
          IF win.Set_Icon_From_File("gnus.png") then
     
             Put_line("L'icone a pu être chargé..") ;
          else
             raise LOADING_ERROR ;
          end if;
       exception
          when others =>
             Put_line("Erreur de chargement de l'icône.") ;
     
       end;
     
     
     
       Gtk_New(Bouton) ;
     
       win.add(Bouton) ;
     
       Win.Show ;
     
       Bouton.show ;
     
       Main ;
     
    END transparent ;

  8. #8
    Membre du Club
    Homme Profil pro
    chômeur
    Inscrit en
    Septembre 2015
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : chômeur

    Informations forums :
    Inscription : Septembre 2015
    Messages : 175
    Points : 62
    Points
    62
    Par défaut
    Merci, c'est exactement ce que je voulais faire.

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

Discussions similaires

  1. [GtkAda] Zone coloriable pixel par pixel
    Par ZbergK dans le forum GTK+
    Réponses: 1
    Dernier message: 17/12/2007, 09h56
  2. [GtkAda] Première fenêtre
    Par Scorpyosis dans le forum GTK+
    Réponses: 2
    Dernier message: 16/03/2007, 20h44
  3. [GTKAda] Problème d'organisation dans une fenêtre
    Par Poseidon62 dans le forum Ada
    Réponses: 1
    Dernier message: 12/03/2007, 14h03
  4. [GTKAda] Installation & Utilisation
    Par Vivian Pennel dans le forum GTK+
    Réponses: 1
    Dernier message: 09/03/2007, 19h19
  5. [VBA] Err.Raise : utilisation de vbObjectError
    Par Julien Dufour dans le forum Access
    Réponses: 7
    Dernier message: 04/04/2006, 15h14

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