From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: I do not understand this error...
Date: Sun, 7 Feb 2016 09:23:44 +0100
Date: 2016-02-07T09:23:44+01:00 [thread overview]
Message-ID: <n96uuf$stn$1@gioia.aioe.org> (raw)
In-Reply-To: 8778e70b-81e1-4dcc-8ecb-8bcaceb74b57@googlegroups.com
On 2016-02-07 01:34, John Smith wrote:
> The the following example is wrong:
> http://rosettacode.org/wiki/Hello_world/Graphical#Ada
>
> If so, then how would you fix this?
>
> On Saturday, February 6, 2016 at 6:47:49 PM UTC-5, Jeffrey R. Carter wrote:
>> On 02/06/2016 03:55 PM, John Smith wrote:
>>>
>>> gtk_test.adb:16:04: instantiation error at gtk-handlers.ads:1039
>>> gtk_test.adb:16:04: subprogram must not be deeper than access type
>>> gtk_test.adb:17:04: instantiation error at gtk-handlers.ads:437
>>> gtk_test.adb:17:04: subprogram must not be deeper than access type
>>
>> This an accessibility check. It means that it's possible for an
>> access-to-subprogram value to be copied into a variable which has longer life
>> than the subprogram. This is not allowed by the language.
Generic packages from Gtk.Handlers cannot be instantiated in the main
procedure, due to accessibility check, as Jeffrey wrote.
To resolve this move instantiations Handlers and Return_Handles into a
separate [library level] package and use this package in the main procedure.
In GtkAda contributions there are pre-instantiated handlers to deal with
gtk program exit. A working example will look like:
--------------------------------------------
with Gtk.Label; use Gtk.Label;
with Gtk.Window; use Gtk.Window;
with Gtk.Main;
with Gtk.Missed;
procedure gtk_test is
Window : Gtk_Window;
Label : Gtk_Label;
begin
Gtk.Main.Init;
Gtk.Window.Gtk_New (Window);
Window.On_Delete_Event (Gtk.Missed.Delete_Event_Handler'Access);
Window.On_Destroy (Gtk.Missed.Destroy_Handler'Access);
Gtk_New (Label, "Goodbye, World!");
Window.Add (Label);
Window.Show_All;
Gtk.Main.Main;
end gtk_test;
-----------------------------------------------
http://www.dmitry-kazakov.de/ada/gtkada_contributions.htm
--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
next prev parent reply other threads:[~2016-02-07 8:23 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-06 22:55 I do not understand this error John Smith
2016-02-06 23:47 ` Jeffrey R. Carter
2016-02-07 0:34 ` John Smith
2016-02-07 4:36 ` Jeffrey R. Carter
2016-02-08 3:51 ` John Smith
2016-02-08 4:41 ` Jeffrey R. Carter
2016-02-08 23:33 ` Robert A Duff
2016-02-09 5:25 ` Jeffrey R. Carter
2016-02-09 9:43 ` G.B.
2016-02-09 16:14 ` AdaMagica
2016-02-08 23:39 ` John Smith
2016-02-09 5:25 ` Jeffrey R. Carter
2016-02-07 8:23 ` Dmitry A. Kazakov [this message]
2016-02-07 22:11 ` John Smith
2016-02-07 23:26 ` John Smith
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox