Deutsch   English   Français   Italiano  
<6148bfb6$0$8881$426a74cc@news.free.fr>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!weretis.net!feeder6.news.weretis.net!feeder8.news.weretis.net!feeder1-2.proxad.net!proxad.net!feeder1-1.proxad.net!212.27.60.64.MISMATCH!cleanfeed3-b.proxad.net!nnrp1-1.free.fr!not-for-mail
Newsgroups: fr.comp.lang.ada
References: <e0c35ed1-c15f-419f-a724-07a3c3bf5d2an@googlegroups.com>
 <shv0d7$1sv$1@dont-email.me>
 <ba295165-4f5f-46da-aa73-dc8fddc0703bn@googlegroups.com>
 <2d7ae0f0-603d-405b-ae05-df8ec6de9cecn@googlegroups.com>
From: DrPi <314@drpi.fr>
Subject: Re: Les Callback en Ada
Date: Mon, 20 Sep 2021 19:07:02 +0200
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
 Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <2d7ae0f0-603d-405b-ae05-df8ec6de9cecn@googlegroups.com>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: fr
Content-Transfer-Encoding: 8bit
Lines: 90
Message-ID: <6148bfb6$0$8881$426a74cc@news.free.fr>
Organization: Guest of ProXad - France
NNTP-Posting-Date: 20 Sep 2021 19:07:02 CEST
NNTP-Posting-Host: 82.65.30.55
X-Trace: 1632157622 news-1.free.fr 8881 82.65.30.55:60490
X-Complaints-To: abuse@proxad.net
Bytes: 3543

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