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

GTK+ Discussion :

[Ada] program error: access violation après un Emit_By_Name.


Sujet :

GTK+

  1. #1
    Invité
    Invité(e)
    Par défaut [Ada] program error: access violation après un Emit_By_Name.
    Bonjour,

    Voici mon code :

    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
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
     
       function Saver_Event
         (Object : access Gtk_Widget_Record'Class;
          User_Data : Ultra_Address_To_Access.Object_Pointer) return Boolean;      
     
       function saver_Event
         (Object : access Gtk_Widget_Record'Class;
         User_Data : Ultra_Address_To_Access.Object_Pointer) return Boolean
       is
     
          Dialog : Gtk.Dialog.Gtk_Dialog;
          Yes    : Gtk.Widget.Gtk_Widget;
          No     : Gtk.Widget.Gtk_Widget;            
       begin
     
          loop
             Gtk.Dialog.Gtk_New(Dialog, "Save ?", User_Data.Mainwin, Gtk.dialog.modal);
             Yes := Gtk.Dialog.Add_Button(Dialog, "Yes", Gtk.Dialog.Gtk_Response_Yes);
             No := Gtk.Dialog.Add_Button(Dialog, "No", Gtk.Dialog.Gtk_Response_No);         
             case Gtk.Dialog.Run(Dialog) is
                when Gtk.Dialog.Gtk_Response_Yes    =>               
    	       Destroy(Object);
                   Gtk.Dialog.Destroy(Dialog);	       
    	       Gtk.Main.Main_Quit;               
                   return True;
                when Gtk.Dialog.Gtk_Response_No     =>
    	       Destroy(Object);
                   Gtk.Dialog.Destroy(Dialog);       
    	       Gtk.Main.Main_Quit;
                   return True;
                when others =>
                   Gtk.Dialog.Destroy(Dialog);
             end case;
          end loop;      
     
       end saver_Event;
     
     
       procedure saver(Ultrason : in Ultrason_Access) is
          Verax : Boolean := False;
       begin
          Gtk.Main.Init;
          Gtk_New
    	(Ultrason.Mainwin);
          Set_Title
    	(Ultrason.Mainwin, 
    	 "Ultrason 2015 MIDI Composer : " & Ultrason.Theory.File.all);      
          Gtk.Window.Set_Position
    	(Ultrason.Mainwin, 
    	 Win_Pos_Center);
          Gtk.Window.Set_Default_Size
    	(Ultrason.Mainwin, 
    	 800, 600);
     
          -- Window Exit connect. --
          Window_Cb.Connect (Ultrason.Mainwin, "destroy",
    			 Window_Cb.To_Marshaller (Exit_Main'Access),
    			 Ultrason);
     
          -- Window Delete connect. --
          Return_Window_Cb.Connect (Ultrason.Mainwin, "delete_event",
    				Return_Window_Cb.To_Marshaller (saver_Event'access),
    				Ultrason,
    				After => True);
     
          -- Create Mainbox. --
          Gtk.Box.Gtk_New_Vbox (Ultrason.Mainbox, False, 0);            
          Gtk.Window.Add(Ultrason.Mainwin, Ultrason.Mainbox);
     
          Gtk.Window.Show_All
    	(Ultrason.Mainwin);
     
          Verax := Return_Window_Cb.Emit_By_Name(Ultrason.Mainwin, "delete_event");
     
          Gtk.Main.Main;
       end Saver;

    Sans l'appel à emit_by_name, ça marche impec, mais donc une exception program error est levé aux click sur les bouton yes/no de du dialog saver_event si j'utilise emit_by_name.

    Pourquoi ?

    S"il vous plait,
    Merci.
    Dernière modification par liberforce ; 30/11/2017 à 17h50. Motif: Correction des tags

Discussions similaires

  1. Réponses: 2
    Dernier message: 12/03/2014, 09h48
  2. [MySQL] [MySQL] SQLSTATE[42000]: Syntax error or access violation: 1064
    Par Domotik35 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 28/07/2011, 16h42
  3. [IDE] C++ Builder 6 : Error 1657 - Link error : Access violation
    Par el_draken dans le forum C++Builder
    Réponses: 1
    Dernier message: 03/01/2011, 18h11
  4. [PDO] Erreur incompréhensible : 'SQLSTATE[42000]: Syntax error or access violation: 1064'
    Par cyril_k dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 13/12/2008, 12h12
  5. "Access violation" apres utilisation des compos BD
    Par bahaa dans le forum Bases de données
    Réponses: 1
    Dernier message: 06/10/2005, 07h59

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