luc desruelle's Blogue

Navigateur communautaire
annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 
Desruelle_luc
7195 Visites
0 Commentaires

Le code utilisé pour le post est en Pièce jointe

0) Introduction

 

Depuis LabVIEW 6.1 il est possible d’importer dans la face-avant de l’IHM des GIF animés. Dans la face-avant, oui, mais surtout dans les contrôles et indicateurs. 

 

L’intérêt d’utiliser une image animée :

 

1)     Ajouter une animation, pour signaler le déroulement d’une action, et sans faire de code

2)     Esthétique, comme toujours, pour un aspect plus professionnel (attention pas toujours vrai…) 

 

 

1) Signaler le déroulement d'une action

 

Mon préféré, il est très simple d’importer un GIF animé, et de l’insérer

Soit dans un bouton état Vrai : une image updating2.gifet état Faux : une autre image  ou PAS d’image, afin de définir une action en cours, par exemple une mise à jour.

 

Soit dans un picture Ring ou menu déroulant d’images, afin de définir un état  2.png qui sera disponible via la valeur « donnée » 3.png

 

par exemple 

Dans l’utilisation, une de mes réponses sur le forum « Faire clignoter une led dans un cluster »

http://forums.ni.com/t5/Discussions-au-sujet-de-NI/Labview-faire-clignoter-une-led-dans-un-tableau-d... 

 

 

2) Esthétique

J’avais réalisé pour illustrer les fenêtres LabVIEW qui ne sont pas rectangulaire, Vous trouverez l'ensemble du sujet, des exemples, du code et un tutorial sur la réalisation de fenêtres pas rectangulaire sur le post d'origine : Les fenêtres LabVIEW ne sont pas toutes rectangulaires

 

un exemple avec un petit poisson qui nageait.

 

Afin de déplacer l’image, j’avais insérer un GIF animé de poisson dans un menu déroulant d’images, que je déplaçais de façon programmatique.

 

L’intérêt du menu déroulant, plutôt que d’un booléen, résidait dans la possibilité de rajouter d’autres images. 

Capture11.PNGCapture12.PNG

 

 

3) Importer un GIF animé dans LabVIEW

Réaliser un GIF animé, avec par exemple Barbarosa Gif animator ou Photoshop ou ... télécharger une image libre de droit sur internet.

Vous pouvez télécharger mon avatar…

 

Sous LabVIEW  dans le menu : "Importer une image dans le presse papier" afin de ne pas dégrader l'image

 

5.png

 

Sur le contrôle de type menu déroulant d'images "ajouter un élément après"

7.png

 

 

 

 

Je reste dispo pour vos commentaires, A+

  

avatar_ld.gifLuc Desruelle Voir mon profil | Contact

CLA : Certified LabVIEW Architect / Certifié Architecte LabVIEW
CTD : Certified TestStand Developer / Certifié TestStand LabVIEW

 

Desruelle_luc
7835 Visites
9 Commentaires

0] Introduction

Il existe sur internet plusieurs exemples, très intéressants, de code LabVIEW pour avoir des fenêtres qui ne sont pas rectangulaires.

splash3.png

Tous les exemples utilisent le même code, qui permet via la dll Windows "user32.dll" fonction SetLayerdWindowAttributs, de :

> rendre transparent l'ensemble des pixels d'une couleur spécifiée de la face-avant ;

> gérer l'opacité de la fenêtre.

http://msdn.microsoft.com/en-us/library/windows/desktop/ms633540(v=vs.85).aspx

L'intérêt est :

  1. principalement esthétiquepour les spash screen, Cf Wikipédia : la toute première fenêtre affichée par un logiciel. Cette fenêtre incite l'utilisateur à patienter pendant le chargement et l'installation d'un logiciel tout en lui apportant diverses informations comme le nom du logiciel, le nom de l'éditeur, le logo de l'éditeur ou du logiciel, les droits d'auteur associés au logiciel, la version et l'état du chargement du logiciel.
  2. insérer des fenêtres "particulières"
  3. opacité, afin de permettre une comparaison par superposition de plusieurs fenêtres

Je vais montrer un exemple avec ma photo suivante

Capture5.PNG

I] Certains codes incomplets

Certains exemples sont incomplets, car ils ne fonctionnent qu’avec des « jeux » de couleurs particuliers.

Le problème provient de la différence de gestion des couleurs entre LabVIEW et Microsoft : RGB VS BGR >>> COLORREF value has the following hexadecimal form : 0x bbggrr

Par exemple http://forums.ni.com/t5/LabVIEW/Darren-s-Weekly-Nugget-04-17-2006/m-p/352929?view=by_date_ascending#...

ou le très bon post de DaHelmut

1 erreur.PNG

II] Rendre Transparent Des Pixels - Fonction Set Window Color To Transparent

D’autres exemples sont très complets, et fonctionnent avec toutes les couleurs, car ils convertissent la couleur RGB de LabVIEW en BGR pour Windows

Par exemple une référence : https://decibel.ni.com/content/blogs/labviewramblings/2013/11/30/groovy-splash-screen

Je ne sais pas qui est la première personne à avoir réalisé le code. J'ai réalisé un vi modifié, avec la documentation du code et en intégrant directement le Get Window Handle.vi

Set Window Color to Transparent.png

Pour utiliser le code il faut ouvrir la référence du vi via Capture.PNG puis Capture3.PNG

par exemple Capture2.PNG

La fenêtre est alors transparente mais ... avec une bordure!

Capture4.PNG

III] Une fenêtre sans bordure

La transparence ne va pas suffir. En effet la fenêtre a encore la bordure. Il faut modifier les options de la fenêtre pour avoir

Capture7.PNG

devient Capture8.PNG

La fenêtre n'est plus rectangulaire! Mais n'est plus une fenêtre, car comment la fermer?

IV] Fermer la fenêtre sans bordure

il faut ajouter un bouton "croix" pour fermer... Sans titre.png

Image2.png

Toutes les formes sont possibles.

Même un "Petit poisson" voir le code en PJ

Capture11.PNGCapture12.PNG

Luc Desruelle | avatar_ld.gif | Voir le profil LinkedIn de Luc DesruelleVoir mon profil

CLA : Certified LabVIEW Architect / Certifié Architecte LabVIEW
CLD : Certified LabVIEW Developer / Certifié Développeur LabVIEW

Contact , About me. , Google+. , Twitter.

Tout télécharger