begin process at 2012 02 16 09:35:21
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > CALENDRIER ENTIÈREMENT EN GDI+

CALENDRIER ENTIÈREMENT EN GDI+


 Information sur la source

Note :
5 / 10 - par 1 personne
5,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Graphique Source .NET ( DotNet ) Classé sous :GDI, Calendrier, Controle, Anmations, Effets Niveau :Débutant Date de création :01/06/2008 Vu / téléchargé :6 508 / 505

Auteur : BadoqueAlex

Ecrire un message privé
Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Voici un petit controle pour palier aux exemples assez insolites que l'on peut trouver sur ce site. Alors, pour éviter d'avoir d'un coté la manière de tracer un trait, de l'autre une forme, tout est réuni ici.

Voici la liste des choses qui sont abordées :

      - Dessin en GDI+
      - Création d'un control utilisateur de de propriétés
      - Utilisation du Double Buffer pour dessiner (cela évite de voir les dessins clignoter)
      - Démonstration d'effets en tous genres
            - Transitions en Fondu
            - Fondu de Texte
            - Fondu de couleurs
      - Tracé de formes en GDI+
      - Tracé de texte en GDI+
      - Utilisation des API pour gérer la taille du texte en pixels
      - Utilisation des Rectangles
            - Gestion des coordonnées relatives pour gérer dynamiquement la position de la      
              souris lorsqu'elle passe sur un texte

Donc, pour résumer : Ce controle est un controle qui permet d'afficher un Calendrier en GDI. Ce controle s'appuis sur une classe, alors il vous suffit de copier le code du control vers un formulaire, vous pourrez créer ce calendrier mais version "économiseur d'écran". Je le mets entre parenthèses car le GDI+ et le Double Buffer qui redessine en permanence afin de rendre les animations fluides prend des ressources en CPU. Donc, à moins de le programmer en OpenGL ou DirectX, le GDI+ prend beaucoup de ressource (je préfère prévenir pour éviter les remarques ladessus), mais, OpenGL ou DirectX, ce n'était pas l'objet de cette source.

Vous voulez un exemple d'application connue qui est programmée entièrement en GDI+ ? C'est pas compliqué, prennez Safari 3 pour Windows. Le programme bug, l'interface parfois est à moitié en XP/Mac, donc, le GDI+ n'est pas très adapté pour les grosses surfaces. Cependant, pour un petit controle, un bouton, ou ce genre de chose, c'est possible. Pour les grosses animations, préférez WPF.

Comment faire pour lancer ce projet ? Ouvrez le (J'ai utilisé Visual Studio 2005), puis GENEREZ LA SOLUTION AVANT DE COMMENCER A AFFICHER UN FORMULAIRE pour ne pas obtenir l'erreur indiquant que le fichier du controle n'est pas présent (inutile de laisser le répertoire bin pour poster sur le site).

Pour ce qui est des commentaires sur le code, je n'ai pas tout commenté, car le principe de "Boucle de de dessin est toujours le même". En GDI, on programme une boucle (ici en fonction grâce au Timer qui Invalide la zone à chaque milliseconde), ou bien apr une boucle loop par exemple. Vous crééz des variables qui indiquent ce qu'il faut tracer. Ici, j'ai créé un Select Case afin d'afficher la page qu'il convient. Chaque page est dessinée dans une fonction, qui à pour arguments un objet graphique, puis on appelle cette fonction dans l'évènement OnPaint qui à pour PaintEventArg e. Donc, on récupère a fonction dans l'évènement e du OnPaint et le Timer invalide MyBase pour effacer et OnPaint redessine la zone. On applique le double buffer en 2 lignes de code au début du projet et le tour est joué.

PS: La source d'inspiration pour ce controle était le calendrié présent en Widget dans Windows Vista.



 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source .NET (Dotnet) ANALYSEUR DE LIENS PAR EXPRESSIONS RATIONNELLES
Source avec Zip Source avec une capture Source .NET (Dotnet) BOITE DE NAVIGATION À LA SAUCE MAC OS X
Source avec Zip Source avec une capture Source .NET (Dotnet) PETIT JEU EN VB.NET ^^

 Sources de la même categorie

Source avec Zip Source avec une capture Source .NET (Dotnet) VB10 - CRÉER VOS PROPRES CALQUES SUR UNE IMAGE par Duke49
Source avec Zip Source avec une capture Source .NET (Dotnet) CREER UN GIF ANIMÉ par Le Pivert
Source avec une capture GRAPH PHP COURBE DE CHARGE par s.defaye
Source avec Zip Source avec une capture BOULE DE CRISTAL par BLUEBIBUBBLE
VB6 - DÉPLACEMENT D'UN CONTRÔLE SUR UN SEGMENT DE DROITE DÉL... par ucfoutu

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture CALENDRIER EN VBA POUR EXCEL 2010 par nounou94
Source avec Zip Source avec une capture LES FONCTIONS DATE PAR L'EXEMPLE. par pasquet78
Source avec Zip Source avec une capture CALENDRIER, MODE D'EMPLOI par pasquet78
Source avec Zip Source avec une capture Source .NET (Dotnet) CREER UN CALENDRIER DE POCHE par Le Pivert
Source avec Zip Source avec une capture Source .NET (Dotnet) CALENDRIER ANNUEL NORME ISO par Prog1001

Commentaires et avis

Commentaire de Kevin.Ory le 01/06/2008 18:30:55

Salut,
Rien de réjouissant, au contraire: je trouve ta source intéressante, mais elle est vraiment très mal codé.

"Ce calendrier à été développé pour être étudié par les membres de la communauté VbFrance"
Moi je ne conseil à personne d'étudier cette source, elle est bien trop complexe et non performante.

"Toute utilisation même à des fins non commerciales dans un programme autre que celui-ci est interdite sans mon accord écrit."
Ouais si tu veux...

"Dessin en GDI+"
Oui et alors, quel autre choix a-tu pour dessiner qqch sur une Windows Forms? Toutes les windows forms sont dessiné en GDI, du plus simple label à la ListView, tout est en GDI dans Windows. Et dire "j'ai fais une application qui utilise GDI+", parce qu'on fait un Graphics.DrawString, ben  bon... En plus, GDI+ fait plutôt références aux API, alors pourquoi ne parles-tu pas des API utilisé pour créer une fenêtre, utiliser un Timer, détecter le clique de la souris, etc?

"Vous voulez un exemple d'application connue qui est programmée entièrement en GDI+ ? C'est pas compliqué, prennez Safari 3 pour Windows. Le programme bug, l'interface parfois est à moitié en XP/Mac, donc, le GDI+ n'est pas très adapté pour les grosses surfaces"
Ainsi que Word, Excel, Internet Explorer, l'explorateur Windows, le bureau, le menu démarrer, Firefox, Live Messenger, Visual Studio, Avast, Media Player (a part l'image vidéo), eMule, Paint.NET... j'arrète là, c'est juste pour redire que TOUTES les Windows Forms utilisent GDI pour  s'afficher à l'écran. Donc que GDI = Lent et bugué, laisse moi rire... (il est vrai que c'est lent pour faire de grosse application graphique (Jeux, vidéo

"Utilisation du Double Buffer pour dessiner"
Oui, DoubleBuffer = True et c'est près. Ou alors suffit d'utiliser une PictureBox, ou le DB est activé par défaut.

"Je le mets entre parenthèses car le GDI+ et le Double Buffer qui redessine en permanence afin de rendre les animations fluides prend des ressources en CPU. Donc, à moins de le programmer en OpenGL ou DirectX, le GDI+ prend beaucoup de ressource"
Parlons-en... Le fait d'afficher un label sur une form te prend 100% de CPU toi? Ben non, et pourtant ton code utilise 100% de CPU pour afficher 3 ligne de texte (statique). C'est justement en DirectX ou OpenGL, dans les jeux, qu'on créé une boucle comme tu l'as fais, mais pas pour afficher un texte en GDI.

"car le principe de "Boucle de de dessin est toujours le même". En GDI, on programme une boucle (ici en fonction grâce au Timer qui Invalide la zone à chaque milliseconde), ou bien apr une boucle loop par exemple"
Tout faux...

"On applique le double buffer en 2 lignes de code au début du projet et le tour est joué."
En 1 ligne avec la fonction de DoubleBuffer intégré dans les contrôles Windows (Me.DoubleBuffer = True). Mais il aurait été possible d'utiliser un BufferedGraphics pour éviter de tout redessiner à chaque rafraichissement.
Parlons de la longueur du code. Près de 1000 lignes de code pour afficher un peu de texte sur un controle, ça fait beaucoup, vraiment beaucoup... Je suis sur que je fais la même chose en 10 fois moins de code...


Bon j'arrète... (je pourrais encore faire des pages de commentaires en citant ton code)
BadoqueAlex, je te félicite pour l'effort et surtout d'avoir posté ta source sur le site, mais je pense que tu as encore beaucoup à apprendre avant de créer du code d'exemple destiné à "être étudié par les membres de la communauté VbFrance"
A l'occase, si je suis motivé, je ferai un contrôle semblable histoire que tu puisse l'étudier ;)

Dsl d'avoir été si négatif,
A+

Commentaire de The Meteorologist le 05/09/2008 00:11:41 5/10

Même si le rendu au final est pas trop mal, le code source est absolument abominable. C'est carrément dommage étant donné qu'il semble avoir beaucoup de travail là dessous. Voici les principales choses que tu devrais savoir :

-Une "Function" est sensée retourner une valeur, elle n'est pas à utiliser comme simple routine.

-Les "Property" sont les propriétés d'un objet, hors tu les utilises comme des méthodes. Le get ne retourne jamais rien et tu mets le même code dans le get et set ...

-Utilises des AND à la place d'imbriquer des IF les uns dans les autres.

-Utilises des tableaux de variables.

-Creuse-toi l'esprit, ton code source fait 1137 lignes et je peux te dire avec certitude que codé correctement il en ferait à peine 200.

-Et énormément d'autres choses.

En bref, je respecte beaucoup le travail que tu as du faire, mais il faut que tu suives un tutoriel d'urgence car visiblement tu ne connais pas de beaucoup de choses au VB.NET.

Simon.

PS : Voici un bon tutoriel que je pourrais te conseiller ;) :
http://plasserre.developpez.com/vsommair.htm






Commentaire de broute128 le 05/03/2009 21:50:43

Le code est vraiment pas bon! J'appuie.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

calendrier [ par Benz ] Bonjour,Je cherche à créer une sorte de planning. Mon but : pouvoir réserver un véhicule à des dates précises (ou plages de dates) de manière graphiqu Recuperation des dates à partir d'un controle Calendrier [ par jeannot45 ] Bonjour à tous.Voici mon problème - Très urgentDans un formulaire access, j'ai mis un controle calendrier 8.0je récupère dans des contrôles indépendan date présélectionné dans un controle calendar [ par pleymo21 ] BonjourJe me suis glissé un calendrier sous vb.net et j'aimerais qu'à chaque fois que la page est loadée...je voudrais que la date du j Controle Calendrier pour un porjet WPF [ par spatum ] Bonjour Je suis en train de m'exercer au XAML et je cherche un contrôle calendrier pour projet WPF. Merci d'avance pour votre aide Spat Changer couleur jours dans calendrier (controle calendrier 9.0) suivant valeur [ par leo09 ] Access 2000 Bonjour à tous, Je sollicite votre aide sur l'utilisation d'un calendrier (controle calendrier 9.0) dans un formulaire. Je cherche le mo Controle Calendrier [ par stupidon ] Qqn sait où se trouve le controle qui affiche un calendrier ?Référence ? Composant ?Merci à vous et bon coooooooooooooooode ! Controle calendrier 10.0 sous Access, HELP [ par yahaaa ] bonjour amis lecteur et peut-être sauveur.Actuellement je monte une application Acces dans le cadre d'un stage.Il y a un hic je ne connait ni Access n Récupération d'un controle calendrier (MsCal.OCX) [ par jeannot45 ] Bonjour à tous et joyeuses fetes.Bien que la tete soit plutot à la fete, j'ai néanmoins un problème.Je souhaiterai mettre un controle calendrier dans tracer un graphe a l'aide de controle mschart et datagrid [ par mechmech ] salutj'ai créé une table de donnés (2 champs de type numerique et type date/heure )dans une base de donné access ,j'ai fait extraire ces champs avec l saisir directement dans une msflexgrid [ par stipe ] j'ai un probleme tout simple: je cherche un controle grille qui me permette d'entrer des données dans la cellule lorsque cette cellule a le focus, com


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 8,814 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales