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

VC++ .NET Discussion :

[Dotnet C++]Composant Dayview


Sujet :

VC++ .NET

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2005
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 20
    Points : 19
    Points
    19
    Par défaut [Dotnet C++]Composant Dayview
    Bonjour a tous,

    Je continue de développer mon application (en même temps j'apprends) et je suis une nouvelle fois bloquer dans l'utilisation d'un composant externe.

    J'ai récupéré le composant dayview ( http://www.codeproject.com/cs/miscct...dardayview.asp ) avec son exemple en C# sauf que mon application est en C++. Je suis donc parti de l'exemple en C# et tenter de l'intégrer dans mon application.

    Je bloque sur le moment ou une fonction va faire afficher tous les élément du calendrier. Après la création d'un élément je dois appeller ResolveAppointmentsEventHandler en C# ça donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     dayView1.ResolveAppointments += new Calendar.ResolveAppointmentsEventHandler(this.dayView1_ResolveAppointments);
    Et voici la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
            private void dayView1_ResolveAppointments(object sender, ResolveAppointmentsEventArgs args)
            {
                List<Appointment> m_Apps = new List<Appointment>();
     
                foreach (Appointment m_App in m_Appointments)
                    if ((m_App.StartDate >= args.StartDate) &&
                        (m_App.StartDate <= args.EndDate))
                        m_Apps.Add(m_App);
     
                args.Appointments = m_Apps;
            }
    Ce que j'ai écrit en C++ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this->dayView1->ResolveAppointments += gcnew Calendar::ResolveAppointmentsEventHandler(this->dayView1_ResolveAppointments);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    private: void dayView1_ResolveAppointments(System::Object^ sender, Calendar::ResolveAppointmentsEventArgs^ args)
            {
     
                List<Appointment^> m_Apps = gcnew List<Appointment^>();
     
    			Appointment^ m_App = gcnew Appointment();
     
                for each (m_App in m_Appointments)
    			{
                    if ((m_App->StartDate >= args->StartDate) && (m_App->StartDate <= args->EndDate))
    					m_Apps.Add(m_App);
     
     
    			}
     
                args->Appointments = m_Apps;
            }
    Mais le compilateur me sort les erreurs suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    ------ Début de la génération : Projet : EPLG, Configuration : Debug Win32 ------
    Compilation en cours...
    Tache_calendar.cpp
    c:\downloads\eplg\eplg\Tache_calendar.h(51) : error C3867: &'EPLG::Tache_calendar::dayView1_ResolveAppointments' : liste d'arguments manquante dans l'appel de fonction ; utilisez 'EPLG::Tache_calendar::dayView1_ResolveAppointments' pour créer un pointeur vers membre
    c:\downloads\eplg\eplg\Tache_calendar.h(51) : error C3350: 'Calendar::ResolveAppointmentsEventHandler' : un constructeur délégué attend 2 argument(s)
    c:\downloads\eplg\eplg\Tache_calendar.h(235) : error C2664: 'Calendar::ResolveAppointmentsEventArgs::Appointments::set' : impossible de convertir le paramètre 1 de 'System::Collections::Generic::List<T>' en 'System::Collections::Generic::List<T> ^'
            with
            [
                T=Calendar::Appointment ^
            ]
            Aucun opérateur de conversion défini par l'utilisateur disponible, ou
            Aucun opérateur de conversion définie par l'utilisateur disponible qui puisse effectuer cette conversion, ou l'opérateur ne peut pas être appelé
    EPLG.cpp
    c:\downloads\eplg\eplg\Tache_calendar.h(51) : error C3867: &'EPLG::Tache_calendar::dayView1_ResolveAppointments' : liste d'arguments manquante dans l'appel de fonction ; utilisez 'EPLG::Tache_calendar::dayView1_ResolveAppointments' pour créer un pointeur vers membre
    c:\downloads\eplg\eplg\Tache_calendar.h(51) : error C3350: 'Calendar::ResolveAppointmentsEventHandler' : un constructeur délégué attend 2 argument(s)
    c:\downloads\eplg\eplg\Tache_calendar.h(235) : error C2664: 'Calendar::ResolveAppointmentsEventArgs::Appointments::set' : impossible de convertir le paramètre 1 de 'System::Collections::Generic::List<T>' en 'System::Collections::Generic::List<T> ^'
            with
            [
                T=Calendar::Appointment ^
            ]
            Aucun opérateur de conversion défini par l'utilisateur disponible, ou
            Aucun opérateur de conversion définie par l'utilisateur disponible qui puisse effectuer cette conversion, ou l'opérateur ne peut pas être appelé
    Génération de code en cours...
    Le journal de génération a été enregistré à l'emplacement "file://c:\Downloads\EPLG\EPLG\Debug\BuildLog.htm"
    EPLG - 6 erreur(s), 0 avertissement(s)
    ========== Génération : 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========
    Je galère vraimment sur le coup, est ce quelqu'un peut m'aider ? Merci

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    il te dit comment faire dans les erreurs ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this->dayView1->ResolveAppointments += gcnew Calendar::ResolveAppointmentsEventHandler(this, &EPLG::dayView1_ResolveAppointments);

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2005
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 20
    Points : 19
    Points
    19
    Par défaut
    Comme d'habitude tu résoud mon problème en 2 temps et 3 mouvements !

    J'avais aussi fait une petite erreur de synthaxe dans la fonction voici la correcte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    private: void dayView1_ResolveAppointments(System::Object^ sender, Calendar::ResolveAppointmentsEventArgs^ args)
            {
     
                List<Appointment^>^ m_Apps = gcnew List<Appointment^>();
     
    			Appointment^ m_App = gcnew Appointment();
     
                for each (m_App in m_Appointments)
    			{
                    if ((m_App->StartDate >= args->StartDate) && (m_App->StartDate <= args->EndDate))
    					m_Apps->Add(m_App);
     
     
    			}
     
                args->Appointments = m_Apps;
            }
    Merci beaucoup faudrai que je te mette dans les remerciements du programme ;-)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Topic des composants gratuits dotNET
    Par Louis-Guillaume Morand dans le forum Windows Forms
    Réponses: 24
    Dernier message: 06/08/2018, 23h51
  2. Installer ses composants
    Par Geronimo dans le forum C++Builder
    Réponses: 14
    Dernier message: 18/06/2002, 14h51
  3. Re-dimensionnement automatique de composants
    Par ludo_7 dans le forum C++Builder
    Réponses: 10
    Dernier message: 16/05/2002, 16h35

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