Deutsch   English   Français   Italiano  
<d643b3e2-5d85-4986-b4e1-5cb5568a5e10n@googlegroups.com>

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

X-Received: by 2002:a37:8287:: with SMTP id e129mr30168613qkd.415.1632234681281;
        Tue, 21 Sep 2021 07:31:21 -0700 (PDT)
X-Received: by 2002:a05:6820:235:: with SMTP id j21mr24685457oob.75.1632234680968;
 Tue, 21 Sep 2021 07:31:20 -0700 (PDT)
Path: ...!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: fr.comp.lang.ada
Date: Tue, 21 Sep 2021 07:31:20 -0700 (PDT)
In-Reply-To: <6148bfb6$0$8881$426a74cc@news.free.fr>
Injection-Info: google-groups.googlegroups.com; posting-host=102.142.86.184; posting-account=rdYO6wkAAAAd45iu4u7Y67MQUwG0Eumn
NNTP-Posting-Host: 102.142.86.184
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> <6148bfb6$0$8881$426a74cc@news.free.fr>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <d643b3e2-5d85-4986-b4e1-5cb5568a5e10n@googlegroups.com>
Subject: Re: Les Callback en Ada
From: Danielle Mandi Mayagha <dmandimayagha@gmail.com>
Injection-Date: Tue, 21 Sep 2021 14:31:21 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Bytes: 4073
Lines: 98

Le lundi 20 septembre 2021 =C3=A0 18:07:03 UTC+1, DrPi a =C3=A9crit=C2=A0:
> Bonjour,=20
>=20
> Le 20/09/2021 =C3=A0 02:51, Danielle Mandi Mayagha a =C3=A9crit :=20
> ...
> > Salut d=C3=A9sol=C3=A9 encore si je d=C3=A9range mais j'ai un second so=
uci que j'arrive pas =C3=A0 r=C3=A9soudre( voila je donne un exemple du cod=
e apres j'explique le probleme)=20
> >=20
> > ficfier.ads=20
> >=20
> > with Gtk.File_chooser_dialog; use gtk.file_file_chooser_dialog;=20
> > with gtk.widget; use gtk.widget;=20
> > with gtk.handlers;=20
> >=20
> > package P_fichier is=20
> >=20
> > type T_Type is record=20
> >=20
> > F : Gtk_file_chooser_dialog;=20
> >=20
> > end record;=20
> >=20
> > package Callback is new gtk.handlers.user_callback (gtk_widget_record, =
P_fichier.T_Type);=20
> >=20
> > use Callback;=20
> >=20
> > Procedure Stop_Program ( emetteur : access gtk_widget_record;=20
> > object : out P_fichier.T_Type );=20
> >=20
> > end P_fichier;=20
> >=20
> > fichier.adb=20
> >=20
> > package body P_fichier is=20
> >=20
> > Procedure Stop_Program is (emetteur : access gtk_widget_record;=20
> > object : out P_fichier.T_type ) is=20
> > pragma Unreferenced (emetteur);=20
> >=20
> > begin=20
> >=20
> > gtk_new (Object.F, "ajout du fichier", action_Save, null);=20
> >=20
> > end Stop_Program;=20
> > end P_fichier;=20
> >=20
> > main_program.adb=20
> >=20
> > with gtk.main; use gtk.main;=20
> > with gtk.window; use gtk.window;=20
> > with gtk.button; use gtk.button;=20
> > with P_fichier; use P_fichier;=20
> >=20
> > Procedure main_Program is=20
> >=20
> > win : gtk_window;=20
> > bouton : gtk_button;=20
> >=20
> > begin=20
> > init;=20
> >=20
> > gtk_new (win);=20
> > win.set_default_size (600,400);=20
> >=20
> > gtk_new (bouton,"ouvrir le fichier");=20
> >=20
> > declare=20
> >=20
> > Object : T_Type;=20
> >=20
> > begin=20
> >=20
> > P_fichier.callback.connect (bouton,s signal_clicked, callback.to_marsha=
ller (stop_program'=20
> > access, Object, false );=20
> >=20
> > end ;=20
> >=20
> > win.Add (bouton);=20
> > win.show_all;=20
> > main;=20
> > end main_program;=20
> >=20
> > 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=C3=A9 avec Object_connect mais c'est tou=
jours pareil.=20
> >
> A premi=C3=A8re lecture du programme, le probl=C3=A8me n'est plus avec=20
> stop_program mais avec Object.=20
> Object n'existe qu'entre declare et le end correspondant.=20
> Il n'est donc pas possible de l'utiliser dans une callback.=20
>=20
> Nicolas


Ah j'ai d=C3=A9j=C3=A0 essay=C3=A9 cela mais =C3=A7a ne marche toujours pas