Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

[.NET 2] ORDONNANCEMENT ET AFFICHAGE D'EVENEMENT DANS LE TEMPS (COMME DANS OUTLOOK 2007)


Information sur la source

Description

Cliquez pour voir la capture en taille normale
Ce code a pout but de répondre à une question du forum : (lisez la conclusion ^^)
http://www.vbfrance.com/infomsg_ARRANGEMENTS-RECTANGLES_970466.aspx
cela explique pourquoi je n'ai pas fait d'interface utilisateur je laisse le soins a ceux qui en auront besoin de changer la methode "DrawEvenement" de la classe en question ainsi que tout le reste.



 

Source

  • //Tri des différents evenement :
  • internal void Organiser()
  • {
  • Int32 nIndex;
  • Boolean bClasse ;
  • lstDernierParColonne.Clear();
  • lstDernierParColonne.Add(lstEvenement[0].Fin);
  • lstEvenement[0].Colonne = 1;
  • for(nIndex = 1; nIndex <= lstEvenement.Count-1; nIndex++)
  • {
  • bClasse = false;
  • lstEvenement[nIndex].Colonne = 1;
  • while(!bClasse)
  • {
  • if ((lstEvenement[nIndex].Debut.Hour * 60 + lstEvenement[nIndex].Debut.Minute) < lstDernierParColonne[lstEvenement[nIndex].Colonne - 1])
  • {
  • lstEvenement[nIndex].Colonne++;
  • if (lstDernierParColonne.Count < lstEvenement[nIndex].Colonne)
  • {
  • lstDernierParColonne.Add(lstEvenement[nIndex].Fin);
  • bClasse = true;
  • }
  • }
  • else
  • {
  • lstDernierParColonne[lstEvenement[nIndex].Colonne - 1] = lstEvenement[nIndex].Fin;
  • bClasse = true;
  • }
  • }
  • }
  • }
  • //Affichage
  • public void DrawEvenement(Graphics grp)
  • {
  • SolidBrush brush = new SolidBrush(_clrCouleur);
  • Pen pen = new Pen(Color.Black);
  • grp.FillRectangle(brush, Parent.Location.X + (Parent.Largeur * (nColonne - 1)), Parent.Location.Y + (_dDebut.Hour * 60 + _dDebut.Minute) * Parent.Echelle / 30 - (Parent.OffSet * 60 * Parent.Echelle / 30), Parent.Largeur, ((_nDuree / 30) * Parent.Echelle));
  • grp.DrawRectangle(pen , Parent.Location.X + (Parent.Largeur * (nColonne - 1)), Parent.Location.Y + (_dDebut.Hour * 60 + _dDebut.Minute) * Parent.Echelle / 30 - (Parent.OffSet * 60 * Parent.Echelle / 30), Parent.Largeur, ((_nDuree / 30) * Parent.Echelle));
  • }
  • //
//Tri des différents evenement :
        internal void Organiser()
        {
            Int32 nIndex;
            Boolean bClasse ;
            lstDernierParColonne.Clear();
            lstDernierParColonne.Add(lstEvenement[0].Fin);
            lstEvenement[0].Colonne = 1;

            for(nIndex = 1; nIndex <= lstEvenement.Count-1; nIndex++)
            {
                bClasse = false;
                lstEvenement[nIndex].Colonne = 1;
                while(!bClasse)
                {
                    if ((lstEvenement[nIndex].Debut.Hour * 60 + lstEvenement[nIndex].Debut.Minute) < lstDernierParColonne[lstEvenement[nIndex].Colonne - 1])
                    {
                        lstEvenement[nIndex].Colonne++;
                        if (lstDernierParColonne.Count < lstEvenement[nIndex].Colonne)
                        {
                            lstDernierParColonne.Add(lstEvenement[nIndex].Fin);
                            bClasse = true;
                        }
                    }
                    else
                    {
                        lstDernierParColonne[lstEvenement[nIndex].Colonne - 1] = lstEvenement[nIndex].Fin;
                        bClasse = true;
                    }
                }
            }
        }





//Affichage

        public void DrawEvenement(Graphics grp)
        {
            SolidBrush brush = new SolidBrush(_clrCouleur);
            Pen pen = new Pen(Color.Black);
            grp.FillRectangle(brush, Parent.Location.X + (Parent.Largeur * (nColonne - 1)), Parent.Location.Y + (_dDebut.Hour * 60 + _dDebut.Minute) * Parent.Echelle / 30 - (Parent.OffSet * 60 * Parent.Echelle / 30), Parent.Largeur, ((_nDuree / 30) * Parent.Echelle));
            grp.DrawRectangle(pen  , Parent.Location.X + (Parent.Largeur * (nColonne - 1)), Parent.Location.Y + (_dDebut.Hour * 60 + _dDebut.Minute) * Parent.Echelle / 30 - (Parent.OffSet * 60 * Parent.Echelle / 30), Parent.Largeur, ((_nDuree / 30) * Parent.Echelle));
        }

//

Conclusion

ce code ne se préoccupe pas de la date pour le moment meme si j'ai mit a la disposition des ascesseur du type "DateTime" il serrait de bonne augure de le gérer aussi en rajoutant des offsets et des largeurs pour les date comme le montré l'image mais ce n'est en rien qqchs d'obligatoire.


Peut être que j'ameliorerais le graphisme sous peu en utilisant des "brush" degradé avec des couleur un peux plus vives et un quadrillage de fond sur le form pour bien mettre en oeuvre cela mais pour le moment je tenais à apporter une reponse concrete à un pb.
Je vous pris donc de tenir compte de cela avant de m'harponner ^^
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de TeBeCo le 03/07/2007 12:49:41

(hésitez pas à commenter ca mord pas :p)

signaler à un administrateur
Commentaire de barcelone1985 le 03/07/2008 14:37:37

salut,
j'ai deposer une question au forum mais j'ai pas encore eu de reponse je tient a te le demander personellement

c'est que j'ai une application de gestion de stagiaire et dans un etat de sortie j'ai besoin d'afficher les differents stagiaire classer par departement dans l'axe des coordonnees et dans l'axe des abscisses un calendrier ou il est colorié la periode de stage de chaque personne.

si tu peut m'aider stp.
et merci d'avance et excuse moi de t'avoir deranger.

signaler à un administrateur
Commentaire de TeBeCo le 05/07/2008 16:16:55

et tu attends quoi de ma part que je comprenne parce que la tu veux faire un simple Graphique

signaler à un administrateur
Commentaire de barcelone1985 le 07/07/2008 09:54:28

si tu as une idee sur comment deposer le calendrier sur l'axe des abscisses et pouvoir le gerer pour colorié pour chaque stagiaire sa durée.
merci.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Ecrire dans un panel en GDI [ par iow4 ] Bonjour, J'utilise le framework 2 avec VC#.J'ai inseré sur une winform un panel et j'aimerais tracer un rectangle par dessus Seulement lorsque le rect calendrier [ par ange_sali ] Bonsoir&nbsp;; <P class=MsoNor achever ce type deffet avec GDI+ C++ [ par realhabs ] En explorant les possibilites des shader HLSL, je suis tombe sur un viewer directX Hamana graphics viewer : http://miyano.s53.xrea.com/bon ce au japon Pb Rectangle de sélection et perte du focus [ par fcolo ] Bonjour,j'ai une application dans laquelle j'affiche plusieur panel les uns à coté des autres.J'ai implémenté le fait que, lors d'un clic sur un panel Sérialisation de Pen [ par nicolas100 ] Bonjour,J'ai un soucis pour enregistrer une arraylist en utilisant la sérialisation binaire.Mon programme est un outil de dessin (genre Paint) qui per Objet dans comboBox [ par ducker88 ] Bonjour a tous,J'aimerai savoir s'il est possible de mettre un objet dans un comboBox, je m'explique, je voudrais pouvoir inserer un MonthCalendar dan GDI datagrid [ par aquibad ] Bonjour à tous,Depuis 3 jours je me bats avec l'affichage d'un datagrid .2 pb se posent à moi :    Comment faire pour masquer le scrollbar vertical, c que peut on faire avec le Directx et C# [ par CREZ59 ] Bonjour à tous,Je vous savoir s'il est possible de créer des bouttons avec directx en 3D et implementer du code C# derriere les bouttons? Si oui, comm calendrier [ par jon_the_vice ] bonjour,je suis en train de développer une application pour écrans tactiles et j'ai besoin d'un calendrier pour sélectionner des dates (original non?) Problème avec des Rectangles [ par Bidou ] Bonjour à tous,Je dois faire un truc à priori assez simple, mais impossible d'y arriver. Le but est tout simplement de supprimer un rectangle d'un aut


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,718 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.