Re: Les Callback en Ada

Liste des GroupesRevenir à fcl ada 
Sujet : Re: Les Callback en Ada
De : 314 (at) *nospam* drpi.fr (DrPi)
Groupes : fr.comp.lang.ada
Date : 20. Sep 2021, 19:07:02
Autres entêtes
Organisation : Guest of ProXad - France
Message-ID : <6148bfb6$0$8881$426a74cc@news.free.fr>
References : 1 2 3 4
User-Agent : Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.14.0
Bonjour,
Le 20/09/2021 à 02:51, Danielle Mandi Mayagha a écrit :
...

Salut désolé encore si je dérange mais j'ai un second souci que j'arrive pas à résoudre( voila je donne un exemple du code apres j'explique le probleme)
 ficfier.ads
 with Gtk.File_chooser_dialog;      use gtk.file_file_chooser_dialog;
with gtk.widget;                        use gtk.widget;
with gtk.handlers;
 package P_fichier is
 type T_Type is record
 F : Gtk_file_chooser_dialog;
 end record;
 package Callback is new gtk.handlers.user_callback (gtk_widget_record, P_fichier.T_Type);
 use Callback;
 Procedure Stop_Program ( emetteur : access gtk_widget_record;
                                                 object : out P_fichier.T_Type );
 end P_fichier;
 fichier.adb
 package body P_fichier is
 Procedure Stop_Program is (emetteur : access gtk_widget_record;
                                                    object : out P_fichier.T_type ) is
pragma Unreferenced (emetteur);
 begin
 gtk_new (Object.F, "ajout du fichier", action_Save, null);
 end Stop_Program;
end P_fichier;
 main_program.adb
 with gtk.main;     use gtk.main;
with gtk.window;   use gtk.window;
with gtk.button;     use gtk.button;
with P_fichier;        use P_fichier;
 Procedure main_Program is
 win : gtk_window;
bouton : gtk_button;
 begin
init;
 gtk_new (win);
win.set_default_size (600,400);
 gtk_new (bouton,"ouvrir le fichier");
 declare
 Object : T_Type;
 begin
 P_fichier.callback.connect (bouton,s signal_clicked,  callback.to_marshaller (stop_program'
access, Object, false );
 end ;
 win.Add (bouton);
win.show_all;
main;
end main_program;
 voila le probleme est que le programme affiche le meme message d'erreur que precedent pourtant j'ai bien mis Stop_Program dans un fichier separe. mais je ne comprend pas j'ai essayé avec Object_connect mais c'est toujours pareil.
 
A première lecture du programme, le problème n'est plus avec stop_program mais avec Object.
Object n'existe qu'entre declare et le end correspondant.
Il n'est donc pas possible de l'utiliser dans une callback.
Nicolas

Date Sujet#  Auteur
16 Sep 21 * Les Callback en Ada8Danielle Mandi Mayagha
16 Sep 21 `* Re: Les Callback en Ada7J-P. Rosen
17 Sep 21  `* Re: Les Callback en Ada6Danielle Mandi Mayagha
20 Sep 21   `* Re: Les Callback en Ada5Danielle Mandi Mayagha
20 Sep 21    +* Re: Les Callback en Ada3DrPi
21 Sep 21    i`* Re: Les Callback en Ada2Danielle Mandi Mayagha
20 Jan 22    i `- Re: Les Callback en Ada1Thomas
21 Sep 21    `- Re: Les Callback en Ada1Ludovic Brenta

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal