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

C++/CLI Discussion :

Récupérer date calendrier


Sujet :

C++/CLI

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 133
    Points : 56
    Points
    56
    Par défaut Récupérer date calendrier
    Salut à tous,

    Je développe un mini projet en C++/CLI et j'aimerai récupérer la date sélectionner par l'utilisateur dans une variable.

    J'ai une fenêtre qui contient un calendrier et un bouton OK. Lorsque l'utilisateur choisit sa date il clique ensuite sur OK et la variable est utilisée par une nouvelle fenêtre qui s'ouvre.

    J'ai tenter d'utiliser mais sans succès.

    Voici le code complet :

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    #include <windows.h>
    #include <string>
     
    #using <System.dll>
    #using <System.Drawing.dll>
    #using <System.Windows.Forms.dll>
     
    using namespace System;
    using namespace System::Windows;
    using namespace System::Windows::Controls;
     
    ref class Fenetre2: Window 
    {
    ...
    //accès à la date choisit (pas encore codé)
    ...
    };
     
    ref class CalendarDlg : Window
    {
    protected:
    	int i_Date;
    	Canvas^ can_Canvas;
    	Label^ l_Instruction;
    	Calendar^ cal_Calendar;
    	Button^ b_Ok;
     
    public:
    	CalendarDlg(void)
    	{
    		// Initialise la fenêtre
    		this->Title = "SCD 1.0.0";
    		this->Width = 235;
    		this->Height = 280;
     
    		l_Instruction = gcnew Label();
    		l_Instruction->Content = "Selectionner une date";
    		Canvas::SetTop(l_Instruction, 5);
    		Canvas::SetLeft(l_Instruction, 15);
     
    		cal_Calendar = gcnew Calendar();
    		cal_Calendar->Width = 200;
    		cal_Calendar->Height = 200;
    		Canvas::SetTop(cal_Calendar, 30);
    		Canvas::SetLeft(cal_Calendar, 10);
     
    		b_Ok = gcnew Button();
    		b_Ok->Width = 80;
    		b_Ok->Height = 25;
    		b_Ok->Content = "OK";
    		Canvas::SetTop(b_Ok, 205);
    		Canvas::SetLeft(b_Ok, 70);
     
    		can_Canvas = gcnew Canvas();
    		can_Canvas->Children->Add(l_Instruction);
    		can_Canvas->Children->Add(cal_Calendar);
    		can_Canvas->Children->Add(b_Ok);
    		this->Content = can_Canvas;
     
    		b_Ok->Click += gcnew RoutedEventHandler(this, &CalendarDlg::OnOkClick);
    	}
     
    	void OnOkClick (Object^ sender, RoutedEventArgs^ e) 
    	{
    		i_Date = cal_Calendar->SelectedDate;
    		Fenetre2^ fenetre2 = gcnew Fenetre2();
    		fenetre2-> Show ();
    	}
    };
     
    ref class CScd : Application
    {
    public:
    	CScd(void){}
    protected:
    	virtual void OnStartup (StartupEventArgs^ e) override
    	{
    		Application::OnStartup (e);
    		CalendarDlg^ cd_CalendarDlg = gcnew CalendarDlg ();
    		cd_CalendarDlg -> Show ();
    	}
    };
     
    [STAThread]
    int main (array<String^>^ args)
    {
    	return (gcnew CScd ())->Run ();
    }

  2. #2
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 426
    Points : 827
    Points
    827
    Par défaut
    Salut,

    Pour obtenir et manipuler des dates en c++/cli tu trouvera la structure à utiliser et des exemples ici.

    Voili, voilou...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 133
    Points : 56
    Points
    56
    Par défaut
    Je suis allé sur le lien que tu m'as donnée et j'ai écrit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    protected :
            DateTime dt_Date;
    	Calendar^ cal_Calendar;
    public :
            cal_Calendar = gcnew Calendar();
    	dt_Date = gcnew DateTime (2002, 1, 1, cal_Calendar);
    	cal_Calendar->Width = 200;
    	cal_Calendar->Height = 200;
    	Canvas::SetTop(cal_Calendar, 30);
    	Canvas::SetLeft(cal_Calendar, 10);
    mais il me fait une erreur :

    error C2664: 'System:ateTime:ateTime(int,int,int,System::Globalization::Calendar ^)'*: impossible de convertir le paramètre 4 de 'System::Windows::Controls::Calendar ^' en 'System::Globalization::Calendar ^'
    Aucun opérateur de conversion défini par l'utilisateur disponible, ou
    Les types pointés n'ont aucun rapport entre eux*; conversion nécessitant reinterpret_cast, cast de style C ou cast de style fonction

  4. #4
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 426
    Points : 827
    Points
    827
    Par défaut
    il me fait une erreur
    Alors essaye avec ça à la ligne 4 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System::Globalization::Calendar^ cal_Calendar;
    Si ça replante, fais voir les #using que tu utilises au début de ton code.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 133
    Points : 56
    Points
    56
    Par défaut
    En mettant ce que tu m'as dis il me met :

    impossible de convertir de 'System::Windows::Controls::Calendar ^' en 'System::Globalization::Calendar ^'
    voici ce que j'utilise dans les using :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #include <windows.h>
    #include <string>
     
    #using <System.dll>
    #using <System.Drawing.dll>
    #using <System.Windows.Forms.dll>
     
    using namespace System;
    using namespace System::Windows;
    using namespace System::Windows::Controls;
    Dans mon projet j'ai rajouté les références mscorlib, PresentationCore, PresentationFramwork, System, System.Windows.Forms et WindowsBase

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 133
    Points : 56
    Points
    56
    Par défaut
    J'y suis arrivé !!!!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DateTime dt_Date;
    	  Calendar^ cal_Calendar;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dt_Date = cal_Calendar->SelectedDate.Value;
    Bon maintenant il faut que je transforme ça en chaine de caractère et que je passe ma variable à l'autre fenêtre mais ça devrait le faire.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 22/03/2010, 12h15
  2. Réponses: 4
    Dernier message: 24/11/2008, 13h13
  3. Réponses: 12
    Dernier message: 12/10/2005, 14h34
  4. [Dates] Calendrier sous format 20000101
    Par nunor dans le forum Langage
    Réponses: 9
    Dernier message: 10/11/2004, 00h03
  5. Réponses: 11
    Dernier message: 23/07/2002, 14h33

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