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

Ada Discussion :

Utiliser Gtk dansun paquetage générique ?


Sujet :

Ada

  1. #1
    Invité
    Invité(e)
    Par défaut Utiliser Gtk dansun paquetage générique ?
    Bonjour,

    Je souhaiterais faire un paquetage générique pour une interface graphique avec Gtk mais je tombe sur une erreur à l'utilisation du type Action_Group.Action_Callback.

    l'erreur est la suivante :
    mal-x.adb:520:53: 'Access attribute not allowed in generic body
    mal-x.adb:520:53: because access type "Action_Callback" is declared outside generic unit (RM 3.10.2(32))
    mal-x.adb:520:53: move 'Access to private part, or (Ada 2005) use anonymous access type instead of "Action_Callback"
    Alors j'ai essayé de mettre mon l'Entry_Action_Array dans la partie privé de la spécification mais je tombe sur une autre erreur dans le main à l'instanciation du générique :
    subprogram must not be deeper than access type
    D'où ma question...

    Merci pour vos réponses.

  2. #2
    Invité
    Invité(e)
    Par défaut
    J'ai peut-être trouvé la solution mais j'obtiens des warnings.

    J'avais cette déclaration qui levais la première erreur précedente:
    Code ada : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    procedure Main_Quit (Action, Main_Window : System.Address);
       pragma Convention (C, Main_Quit);
       --  Called when Quit actions has been selected
     
          Main_Entries : constant Action_Entry_Array :=
         (1 => Create (Name => "FileMenu",        Label => "_File"),
          2 => Create (Name => "Quit",
                       Stock_Id    => Stock_Quit,
                       Label       => "_Quit",
                       Accelerator => "<control>Q",
                       Tooltip     => "Quit",
                       Callback    => Main_Quit'Access),

    Alors j'ai mis :
    Code ada : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Main_Entries : constant Action_Entry_Array :=
         (1 => Create (Name => "FileMenu",        Label => "_File"),
          2 => Create (Name => "Quit",
                       Stock_Id    => Stock_Quit,
                       Label       => "_Quit",
                       Accelerator => "<control>Q",
                       Tooltip     => "Quit",
                       Callback    => Main_Quit'Access.all'access),

    Mais à présent, j'ai un warning :
    midimal.adb:29:04: warning: in instantiation at mal-x.adb:959
    midimal.adb:29:04: warning: accessibility check failure
    midimal.adb:29:04: warning: "Program_Error" will be raised at run time
    midimal.adb:29:04: warning: in instantiation at mal-x.adb:959
    midimal.adb:29:04: warning: cannot convert local pointer to non-local access type
    midimal.adb:29:04: warning: Program_Error will be raised at run time
    Bien que ça ai l'air de fonctionner.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Pff, finalement ça constitue en rien une solution, ça me fait bugguer Gnat.


    Je sèche toujours.

Discussions similaires

  1. Utiliser GTK avec Xcode
    Par PereCastor dans le forum GTK+
    Réponses: 8
    Dernier message: 01/12/2007, 12h13
  2. Réponses: 4
    Dernier message: 07/04/2007, 01h05
  3. Comment utiliser Gtk::Expander .
    Par man in the hill dans le forum GTK+ avec C & C++
    Réponses: 4
    Dernier message: 06/10/2006, 18h40
  4. Non-utilisation d'un caractère générique
    Par ehrhart.jy dans le forum Access
    Réponses: 2
    Dernier message: 13/07/2006, 11h02
  5. [GTK] Ajouter/utiliser GTK dans Visual C++ 6.0
    Par kiroukou dans le forum MFC
    Réponses: 7
    Dernier message: 29/03/2006, 23h04

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