begin process at 2012 02 17 01:28:19
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Control

 > VB.NET 2005 ET GDI+ : LED DISPLAY, PANNEAU DE DIODES : AFFICHEZ UN TEXTE COMME UN SUR UN PANNEAU DE DIODES!

VB.NET 2005 ET GDI+ : LED DISPLAY, PANNEAU DE DIODES : AFFICHEZ UN TEXTE COMME UN SUR UN PANNEAU DE DIODES!


 Information sur la source

Note :
9,5 / 10 - par 6 personnes
9,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Control Source .NET ( DotNet ) Classé sous :led, diode, gdi, vbnet, afficheur Niveau :Initié Date de création :30/10/2006 Vu / téléchargé :12 865 / 1 590

Auteur : GabSoftware

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

 Description

Cliquez pour voir la capture en taille normale
Ce code est un contrôle écrit en VB .Net 2005 et utilise GDI+ pour dessiner. Son utilité est la même qu'un Label, hormis son côté plus graphique.
Si vous avez déjà vu un afficheur à diodes (comme dans les aéroports) ce contrôle y ressemble. Cette classe hérite de toutes les propriétés de UserControl. Le dessin du contrôle utilise un thread séparé.

Parmis les propriétés disponibles :

- Couleur des diodes (propriété ForeColor)
- Couleur du fond (propriété BackgroundColor)
- Couleur de la grille (propriété GridColor)
- Texte à afficher (propriété MyText)
- Police du texte à afficher (propriété Font)
- Type de déplacement du texte (Aucun, droite vers la gauche, gauche vers la droite : propriété MoveType)
- Vitesse du déplacement (intervalle de temps entre 2 mouvements en millisecondes: propriété TimeInterval)



Ce code sera utile pour ceux qui s'intéressent à la programmation avec GDI+, savoir comment on peut travailler avec du texte et des images en mémoire avant d'afficher le résultat, ceux qui s'intéressent à faire un dessin de contrôle dans un thread séparé...

Source

  • Trop de code à poster... Téléchargez le zip.
  • Sinon voici l'idée générale et simplifiée du dessin du contrôle :
  • En mémoire :
  • - Dessiner la grille dans une zone mémoire
  • - Dessiner le texte tel quel (couleur et police) dans une autre zone mémoire
  • - Copier chaque pixel du précédent texte dans une nouvelle zone mémoire, en écartant les pixels (en multipliant leur position X et Y par 3). Ceci sera nos diodes.
  • A l'écran :
  • - Dessiner la grille précédemment construite
  • - Dessiner les diodes
Trop de code à poster... Téléchargez le zip.


Sinon voici l'idée générale et simplifiée du dessin du contrôle :

En mémoire :
- Dessiner la grille dans une zone mémoire
- Dessiner le texte tel quel (couleur et police) dans une autre zone mémoire
- Copier chaque pixel du précédent texte dans une nouvelle zone mémoire, en écartant les pixels (en multipliant leur position X et Y par 3). Ceci sera nos diodes.

A l'écran :
- Dessiner la grille précédemment construite
- Dessiner les diodes

 Conclusion

Je n'ai pas trouvé de bugs, mais si vous en trouviez, merci de me le faire savoir ;)

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  •   GabSoftware.GabMatrix
    •   GabMatrix
    •   GabMatrixTest
      •   bin
        •   Debug
          • GabMatrix.dllTélécharger ce fichier [Réservé aux membres club]32 768 octets
          • GabMatrix.pdbTélécharger ce fichier [Réservé aux membres club]73 216 octets
          • GabMatrix.xmlTélécharger ce fichier [Réservé aux membres club]Voir ce fichier1 808 octets
          • GabMatrixTest.exeTélécharger ce fichier [Réservé aux membres club]36 864 octets
          • GabMatrixTest.pdbTélécharger ce fichier [Réservé aux membres club]71 168 octets
          • GabMatrixTest.vshost.exeTélécharger ce fichier [Réservé aux membres club]5 632 octets
          • GabMatrixTest.xmlTélécharger ce fichier [Réservé aux membres club]Voir ce fichier121 octets
        •   Release
          • GabMatrix.dllTélécharger ce fichier [Réservé aux membres club]28 672 octets
          • GabMatrix.xmlTélécharger ce fichier [Réservé aux membres club]Voir ce fichier2 833 octets
          • GabMatrixTest.exeTélécharger ce fichier [Réservé aux membres club]32 768 octets
          • GabMatrixTest.vshost.exeTélécharger ce fichier [Réservé aux membres club]5 632 octets
          • GabMatrixTest.xmlTélécharger ce fichier [Réservé aux membres club]Voir ce fichier121 octets
      •   My Project
      •   obj
        •   Debug
          •   TempPE
            • My Project.Resources.Designer.vb.dllTélécharger ce fichier [Réservé aux membres club]7 680 octets
          • GabMatrixTest.exeTélécharger ce fichier [Réservé aux membres club]36 864 octets
          • GabMatrixTest.Form1.resourcesTélécharger ce fichier [Réservé aux membres club]180 octets
          • GabMatrixTest.pdbTélécharger ce fichier [Réservé aux membres club]71 168 octets
          • GabMatrixTest.Resources.resourcesTélécharger ce fichier [Réservé aux membres club]180 octets
          • GabMatrixTest.vbproj.GenerateResource.CacheTélécharger ce fichier [Réservé aux membres club]842 octets
          • GabMatrixTest.xmlTélécharger ce fichier [Réservé aux membres club]Voir ce fichier121 octets
          • ResolveAssemblyReference.cacheTélécharger ce fichier [Réservé aux membres club]5 176 octets
        •   Release
          •   TempPE
            • My Project.Resources.Designer.vb.dllTélécharger ce fichier [Réservé aux membres club]7 680 octets
          • GabMatrixTest.exeTélécharger ce fichier [Réservé aux membres club]32 768 octets
          • GabMatrixTest.Form1.resourcesTélécharger ce fichier [Réservé aux membres club]180 octets
          • GabMatrixTest.Resources.resourcesTélécharger ce fichier [Réservé aux membres club]180 octets
          • GabMatrixTest.vbproj.GenerateResource.CacheTélécharger ce fichier [Réservé aux membres club]842 octets
          • GabMatrixTest.xmlTélécharger ce fichier [Réservé aux membres club]Voir ce fichier121 octets
          • ResolveAssemblyReference.cacheTélécharger ce fichier [Réservé aux membres club]5 180 octets
        • GabMatrixTest.vbproj.FileList.txtTélécharger ce fichier [Réservé aux membres club]Voir ce fichier801 octets
      • Form1.Designer.vbTélécharger ce fichier [Réservé aux membres club]Voir ce fichier10 236 octets
      • Form1.resxTélécharger ce fichier [Réservé aux membres club]Voir ce fichier6 194 octets
      • Form1.vbTélécharger ce fichier [Réservé aux membres club]Voir ce fichier2 983 octets
      • GabMatrixTest.vbprojTélécharger ce fichier [Réservé aux membres club]Voir ce fichier4 750 octets
    • GabSoftware.GabMatrix.slnTélécharger ce fichier [Réservé aux membres club]Voir ce fichier1 409 octets
    • GabSoftware.GabMatrix.suoTélécharger ce fichier [Réservé aux membres club]29 184 octets

Télécharger le zip


 Sources du même auteur

Source .NET (Dotnet) INDIRECTION SUR LES MEMBRES D'UNE CLASSE EN VB.NET OU C#, IN...
Source avec Zip Source .NET (Dotnet) GABSCREENSHOT : FAITES SIMPLEMENT ET RAPIDEMENT VOS CAPTURES...
Source avec Zip Source avec une capture Source .NET (Dotnet) DÉMINEUR COMPLET EN VB.NET | COMPLETE MINESWEEPER IN VB.NET
Source avec Zip Source avec une capture Source .NET (Dotnet) POTENTIOMÈTRE (BOUTON ROND QUI TOURNE, KNOB) PARAMÉTRABLE EN...
Source avec Zip Source avec une capture Source .NET (Dotnet) VB .NET 2.0 : LECTEUR MULTIMEDIA AUDIO ET VIDEO | LECTURE DE...

 Sources de la même categorie

Source avec Zip COMMUNICATION MODBUS MASTER par sergelapointe
Source avec Zip Source avec une capture DÉPLACEMENT AVEC FLÈCHES DANS UN PAVÉ DE TEXTBOX 9X9 DYNAMIQ... par EhJoe
Source avec Zip Source avec une capture Source .NET (Dotnet) CONTROLSTARS EN RÉPONSE À JAKNIGHT007 par bigboss9
Source avec Zip Source avec une capture Source .NET (Dotnet) CALENDRIER ANNUEL NORME ISO par Prog1001
Source avec Zip Source avec une capture Source .NET (Dotnet) CONTROLE STARS par jaknight007

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) ENVOI DE MAIL AVEC PIÈCE JOINTE par EhJoe
Source avec Zip Source avec une capture Source .NET (Dotnet) HORLOGE DIODE AVEC 3 ALARMES ET REMISE À L'HEURE par EhJoe
Source avec Zip Source avec une capture Source .NET (Dotnet) PILOTER UN WALLBOARD IP ALCATEL par mays
Source avec Zip Source avec une capture CPU_LED, SURVEILLEZ LE FONCTIONNEMENT DE VOTRE PROCESSEUR GR... par Frank9321
Source avec Zip Source avec une capture Source .NET (Dotnet) POTENTIOMÈTRE (BOUTON ROND QUI TOURNE, KNOB) PARAMÉTRABLE EN... par GabSoftware

Commentaires et avis

Commentaire de Sirocooo le 31/10/2006 09:07:03

Beau travail
9/10

Commentaire de ghuysmans99 le 31/10/2006 09:07:38

très joli!

Commentaire de NISANDSYSTEMS le 31/10/2006 12:13:03

J'ai pas essayer de programmer en VB2005.
En voyant le nombre de fichiers qu'il faut pour faire cela, il y a de quoi se poser certaines questions sur la portabilité ou fiabilité de VB2005???

Je ne donne aucune critique sur tous ceux qui programment sur ce language.
Est-il fiable et souple comme son déscendant? Peut-etre?
Pour moi perso, il ne ma pas encore convaincu.

Sur ce bonne prog a à tous.

Commentaire de GabSoftware le 01/11/2006 02:57:50

Merci à vous! :)
Si vous avez des suggestions ou des améliorations possibles, je suis preneur ;)


>> nisandsystems,

VB 2005 est très fiable, bien plus que vb 2006, et les possibilités sont bien plus étendues. Quant au nombre de fichiers, un bon nombre sont générés automatiquement, en fait tu n'as à écrire qu'un fichier par classe, le reste est généré tout seul.

Commentaire de badrbadr le 01/11/2006 21:52:03

VB 2006? tu voulais dire VB 6 :D

Commentaire de GabSoftware le 02/11/2006 18:25:29

oui, désolé, je parlais de vb6 :D

Commentaire de ianis24 le 10/11/2006 14:09:19

Bizard , ça ne marche pas chez moi...J'ai pourtant vb 2005 et vb6.

Commentaire de tmpdev le 14/11/2006 16:26:30

Bonjour,
Je dois dire que vous avez fait du bon boulot, chapeau !
Par contre il y a un plantage quand le texte à afficher est vide.
Je vais essayer de comprendre le code en espérant qu'il n'est pas trop dur à comprendre ! :-)
Merci de partager votre connaissance !

Commentaire de kimwu le 15/11/2006 06:11:23


Très très bon. Vraiment.
Je voulais faire exactement la même chose. Pour mon programme :)
Tu me sauve beaucoup de temps je vais pouvoir étudier ta manière de faire :)
Mais ton moteur de base semble bien fonctionner à première vue.

Oui moi j'ai des suggestions : les effets !

Voilà, ce que je voulais faire.. la même chose, mais en ajoutant  :

1/ Des fade in   -et-  fade out    
Ces deux là en utilisant les valeur alpha, c'est assez facile en plus, avec une boucle for et des micro pauses dans la boucle..  genre le fade ce fait en 2 sec à peu près - mais tout est configurable tu me diras ;)

2/ Plusieurs couleurs possible
Je veux pouvoir faire scroller du texte en vert, puis un autre texte en rouge par exemple :)
C'est très important pour mon programme et l'effet est garanti
Donc faire deux instances, chaqunes avec des propriétées différentes (on pourrait donc même affecter une police différente etc..)

3 / Un très bel effet de départ...
C'est à dire imagine le controle tout noir.. et tout d'un coup pleins de petits pixels qui arrivent des 4 coins.. scintillant, vers le centre.. et là se forme les lettres :)

Bon celui ci est bien plus compliqué, mais tant que cela : je pensais utiliser des "radoms" mais comme "canalisés"
C'est à dire j'aurais donné une certaines region ou les pixel peuvent être affiché, et donc les randoms seraient calculé uniquement dans ces régions.
Donc on choisi l'espace daffichage.. (exemple du centre vers le coin, en V, donc plus large vers le coin)

L'arrivée que je voudrais faire est la suivante : tout noir, ça part vers le centre en random, puis arrivée au centre, ça tourne en spirale.... et enfin ça crée une ligne horizontale qui part du centre vers les 2 côtés.. pour la longueur de ton texte.
La ça s'arrête, et les lettres se forment :) :)

Bon ok j'arrête de vous expliquer mes folies :p

Je n'ai pas bcp de temps la dessus la maintenant, je travaille sur autre chose, mais un peu plus tard j'essayerai surment :D

Commentaire de kimwu le 15/11/2006 06:13:55

Ah j'oubliais.. comme cela était exactement un des nombreux points qui rentre dans la conception de mon programme, je mets 10 pour le temps que tu as passé à faire cela :)

Commentaire de GabSoftware le 21/11/2006 07:51:20

Merci beaucoup! :p

Je sais pas si je pourrais faire tes améliorations, mais je vais voir ce que je peux faire.
Merci aussi pour le commentaire sur mon lecteur audio!

Pour ceux chez qui ça ne marche pas, comment ça ça ne marche pas? ça plante? y'a un message d'erreur? ^^

Commentaire de kimwu le 25/11/2006 06:17:27


Cool :)

Commentaire de biboone le 13/12/2006 12:16:01

Vraiment un beau boulot !!!

Pour le plantage lorsque le texte est vide, j'ai rajouté une ligne dans la procédure
Private Sub Initialisation() (de GabMatrix.vb)
.
.
.
        'dessine le modèle
        btmodel = New Bitmap(Me.Width, Me.Height)
        bgmodel = Graphics.FromImage(btmodel)
        size = bgmodel.MeasureString(Me.MyText, Me.Font, 1000000)
' --------   Correction Bug Plantage texte vide
        If size.Width = 0 Then size.Width = 1
' -------- Fin correction
        btmodel = New Bitmap(Convert.ToInt32(size.Width), Me.Height)
.
.
.

Encore bravo !
10/10

Commentaire de aybe81 le 24/12/2006 22:03:31

Très bon boulot,

J'avais essayé d'en faire un à partir d'un source en C++, j'ai laché l'affaire ...

En essayant de lancer le projet, il y a une erreur mais ca n'est pas grave;
il faut simplement faire Rebuild et lancer le programme dans le dossier \Release du projet.

Commentaire de aybe81 le 24/12/2006 22:04:23

J'ai oublié de dire, code propre et facile à lire :-))

Commentaire de GabSoftware le 19/01/2007 23:16:27

merci beaucoup! :)

Commentaire de aybe81 le 20/01/2007 01:02:50

salut

je suis en train de travailler sur une version modifiée,

notamment :
la possibilite de scroller dans tous les sens,
une file d'attente qui recoit et fait defiler les messages,

et d'autres idées que j'aimerais inserer aussi,
des themes de couleurs par exemple,,,


quand j'aurais quelque chose de prêt je posterais le code.

ah ouais sinon, parfois en inserant le controle dans un projet,
une erreur avec MoveType apparait mais cela ne gene pas le programme.

@+ :-)

Commentaire de GabSoftware le 23/01/2007 04:00:21

Ah, pour l'erreur je ne l'ai jamais eue... Je serai curieux de voir ça ;)
Sinon j'ai hâte de voir ta version modifiée. Par contre ce serai sympa que mon nom apparaisse si jamais tu postais ta source quelque part :)

Commentaire de aybe81 le 23/01/2007 22:15:46

Je n'oublierais pas de donner crédit à mes sources,

Très bon concept, en fait il y a certaines parties
du code que je n'ai pas totalement dechiffré,
J'attends de vraiment connaître le déroulement des événements
car les rajouts que j'ai fait, doivent visiblement être placés
très précisement, sinon ca fonctionne mal.

J'ai commencé à me pencher sur des thèmes de couleurs à ajouter ...

En ce moment je fais autre chose mais
je vais m'y remettre bientôt et le finaliser :-)

Commentaire de Dnx le 28/08/2007 09:40:03

Très bon boulot gabmatrix!!! vraiment excellente source!
félicitation, 10/10!

aybe81, j'ai hâte de voir ta version modifiée...  :)

Commentaire de Kevin.Ory le 30/12/2007 16:30:02 9/10

Très beau rendu effectivement, je te met 9

Mais je me permet de critiquer le fait que tu prétend utiliser GDI+. Toi tu utilise les fonctions graphiques du framework .NET, qui elles utilisent GDI+, donc de la à dire "Je maitrise GDI+", c'est bcp dire ;)

En fait je suis tombé sur ta source car moi je veux vraiment utiliser GDI+, c'est à dire gdiplus.dll, car le Graphics managé n'est pas assez performant pour ce que je veux faire (me faut des CachedBitmaps)... j'y avait presque cru ;p

Commentaire de GabSoftware le 31/12/2007 06:01:15

Alors :
- "Je maitrise GDI+" : je ne vois pas où j'ai pu écrire ça. En plus ce n'est pas vrai du tout ;)
- J'utilise GDI+ par l'intermédiaire du Framework .net
- Le Graphics managé est aussi performant que le non managé je pense
- Par CachedBitmaps, si tu veux dire, dessiner dans un buffer puis l'afficher à l'écran lorsqu'il est tout dessiné, alors c'est ce que je fais, ça évite le flickering. En ce qui concerne les CachedBitmaps, je n'ai pas réussi à trouver de documentation sur le web pour le moment (peut être que cela a été déprécié par MS ?) mais je tâcherai de me renseigner plus.
- Peux-tu dire ce que tu veux faire ? Car si on le programme bien, le Graphics managé est très performant.

Commentaire de GabSoftware le 31/12/2007 06:05:08

Ah il suffisait d'enlever le S à CachedBitmaps pour trouver toute la doc rêvée.

Essaies donc de regarder ici pour voir si tu trouves ton bonheur : http://search.msdn.microsoft.com/search/Default.aspx?brand=msdn&query=cachedbitmap

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

PILOTER UN AFFICHEUR LCD PAR LE PORT SERIE [ par Ouessan ] IMPOSSIBLE DE TROUVERJE VOUDRAIS ECRIRE LA ROUTINE QUI SUIT EN VB6CELLE CI EST ECRITE EN QBASIC10 OPEN "COM1:9600,N,8,1,CS,DS" for output as #120 PRIN afficheur téléphonique [ par Brolosse ] J'ai un afficheur qui ne fonctionne pas. Et j'aimerais savoir comment capturer les nom de l'applant et son numéro de téléphone. J'ai un code qui ne ma GDI .. doc [ par niedernsill ] Bonjour,Où peux-t-on trouver une petite doc sur les fonctions de la GDI ?Merci API du GDI [ par nico ] Salut, je recherche le moyen de mettre en évidence une fenêtre (comme le spy++) lors que le curseur de la souris pointe dessus. J'ai le hwnd, hdc et l afficheur lcd avec mscomm [ par laulaut ] [size=2]je cherche un peut aide car je voudrais pouvoir ecris sur un afficheur lcd avec une application visual basicmais je suis un peut embete avec u Afficheur Lcd sur port // [ par BABASSE ] J'aimerais interfacer des Lcd de récup (fax) sur le port // du pc, normalement ce doit-etre assez facile, mais visiblement pas tant que ca , je serais VbNet et Unixware [ par ArkaNET ] Salut tous,En tout premier meilleurs voeux Je suis un débutant en VBnet, et je souhaite qqn m'aide à connecter mon applicatiuon (en VBnet ) à une base Lien VBNet / Access [ par billaudd ] Comment faire pour lier un textbox (en vbnet) à un champs d' une base de donnee? OledbdataAdapter, Oledbconnection, dataset... Que faut il employer ? Convertir Touche VBNet [ par gwiwi ] Sur un textbox je souhaite convertir les caracteres saisi en minuscule en majuscule mais en VB.Net je ne trouve pas comment faire.J'ai bien essayé dan Convert touche VBNet [ par gwiwi ] Bonjour,Je cherche a convertir les caracteres minuscules en majuscule dans un textbox sous VB.Net mais je n'y arrive pas.J'ai essayé de voir avec text


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 : 3,307 sec (3)

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