Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 11 janv. 2006 à 12:39
au temps pour moi, c'est exact (si partant d'un fichier)
cs_VinceVG
Messages postés221Date d'inscriptionmercredi 8 septembre 2004StatutMembreDernière intervention30 mars 2016 11 janv. 2006 à 11:42
"pour le Gif, VB sais les afficher (sans transparence)..."
Non non moi j'ai la transparence.
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 10 janv. 2006 à 12:11
chemin relatif, il se peux que cela fonctionne avec certaines fonctions....
(c'est du bricolage)
pour le Gif, VB sais les afficher (sans transparence)...
cs_VinceVG
Messages postés221Date d'inscriptionmercredi 8 septembre 2004StatutMembreDernière intervention30 mars 2016 10 janv. 2006 à 11:50
"VB ne gère pas nativement la transparence des Gifs"
Si du moins chez moi (Picturebox et Image et form et sans doute tous les autres). J'utilise VB6 SP6.
"pour revenir aux sons, je dis juste que si l'utilisateur, dans VB spécifie le chemin :
.\Data\Sounds\BtnOver.wav"
Je suppose que le .\ indique un chemin relatif. C'est une commande sque je ne connaissais pas. C'est pour ça que je ne comprenais pas. Merci.
Bon faut que j'aille au boulot. A+
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 10 janv. 2006 à 11:44
VB ne gère pas nativement la transparence des Gifs
ca n'est pas impossible a réaliser, loin de là... ma bonne raison est la flemme ^^
pour revenir aux sons, je dis juste que si l'utilisateur, dans VB spécifie le chemin :
.\Data\Sounds\BtnOver.wav
ton application doit le stocker ainsi...
et jouer :
LireWav App.Path & Mid$(m_SonOnMouseOver, 2)
de sorte que quel que soit le chemin de l'executable, si les sons sont bien placés, ils seront lus
cs_VinceVG
Messages postés221Date d'inscriptionmercredi 8 septembre 2004StatutMembreDernière intervention30 mars 2016 10 janv. 2006 à 11:32
Si tu es clair. Mais avec mon code je ne change le chemin que si l'utilisateur à laissé le nom par défaut. Si l'utilisateur change le nom alors c'est son chemin qui est pris. Le but c'est de permettre un son par défaut dans le répertoire de l'appli, ce sont s'appliquant à tous les boutons pour lesquels on ne fait rien (j'ai quand même maintenant rajouté une propriété silence).
J'essaye en même temps de rajouter à ce contrôle une image de fond. Dans ton bouton tu utilise la fonction Blit, ce qui te prive notamment de de la transparence GIF. Comme tu as surement une bonne raison peux-tu me la donner (la bonne raison) voire si je persiste.
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 10 janv. 2006 à 11:22
tu y stocke la valeur saisie par l'utilisateur.
si tu la modifie, en la remplacant par une version, avec un chemin complet, ca fonctionnera, bien sur, mais si l'utilisateur distribue son application, avec ton OCX, le chemin ne sera plus dynamique, car stocké en dur, et aucun son ne sortira...
c'est un peu la même chose avec les couleurs...
quand l'utilisateur transmet une couleur systeme, il faut la traduire en couleur (RGB). Il ne faut pour autant pas modifier la propriété (BackColor, par exemple)
je sais pas si je suis très clair^^
cs_VinceVG
Messages postés221Date d'inscriptionmercredi 8 septembre 2004StatutMembreDernière intervention30 mars 2016 10 janv. 2006 à 10:23
"il ne faut pas ici modifier m_SonOnMouseOver"
Pourquoi ?
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 9 janv. 2006 à 12:40
le mieux serait un truc du genre :
if left$(m_SonOnMouseOver,1) = "." Then
LireWav App.Path & Mid$(m_SonOnMouseOver, 2)
Else
LireWav m_SonOnMouseOver
End If
*LireWav est là pour l'exemple, il ne faut pas ici modifier m_SonOnMouseOver
cs_VinceVG
Messages postés221Date d'inscriptionmercredi 8 septembre 2004StatutMembreDernière intervention30 mars 2016 9 janv. 2006 à 12:08
Salut,
Pour éviter le problème du path, j'avais mis ces 2 lignes (impossible d'utiliser app.pathe dans les déclarations). Ca ne marche visiblement pas chez vous mais ça fait quoi ? C'est à l'initialisation ? ou au moment de jouer le son ? A aucun moment je ne définit le chemin ? Pourquoi le mémorise-t-il dans l'éxécutable ?
If m_SonOnMouseOver "OverDefaut.wav" Then m_SonOnMouseOver App.Path & "\OverDefaut.wav"
If m_SonOnClick "ClickDefaut.wav" Then m_SonOnClick App.Path & "\ClickDefaut.wav"
cs_VinceVG
Messages postés221Date d'inscriptionmercredi 8 septembre 2004StatutMembreDernière intervention30 mars 2016 4 janv. 2006 à 12:51
Bon je vais essayer d'assimiler tout ça et de corriger. Merci.
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 3 janv. 2006 à 15:45
*app.path : je ne vois pas comment mieux expliquer....
tu ne dois pas chercher le son juste avec son nom (clickdefaut.wav) mais précédé de son chemin, qui lui sera différent sur quasiment chaque PC...
l'erreur est dans les InitProperties, ReadProperties et WriteProperties
une possibilité est de faire un enum (0 rien, 1 click, 2 = over) et selon cet enum, tu choisis le chemin
*lagg : comme tu lis "synchro", l'API prend la main, c'est à dire que pendant qu'elle joue le son (trouvé ou non), elle empêche le reste, à savoir par exemple les effets MouseOver, etc...
*NoSound : c'est justement pour ne pas entendre ce Beep d'erreur
perso je déclare :
Private Const SND_FILENAME = &H20000 ' name is a file name
Private Const SND_ASYNC = &H1 ' play asynchronously
Private Const SND_NODEFAULT = &H2 ' silence not default, if sound not found
puis une perso (pour la lisibilité)
Private Const SND_PERSONNAL = (SND_FILENAME Or SND_ASYNC Or SND_NODEFAULT)
et c'est ensuite ce dernier Flag pour jouer le son
sndPlaySound m_SonOnMouseOver, SND_PERSONNAL
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 3 janv. 2006 à 12:18
en gros, si on n'a pas la même arborescence, impossible d'entendre la moindre note...
cs_VinceVG
Messages postés221Date d'inscriptionmercredi 8 septembre 2004StatutMembreDernière intervention30 mars 2016 3 janv. 2006 à 11:27
"dur d'évaluer le travail réel (puisque départ existant)"
La note je m'en tape (même si elle fait plaisir quand elle est bonne). Je publie mon travail pour remercier tout ceux qui publie le leur. Je suis un farouche défenseur du libre.
cs_VinceVG
Messages postés221Date d'inscriptionmercredi 8 septembre 2004StatutMembreDernière intervention30 mars 2016 3 janv. 2006 à 11:25
Le vertical existait avant. Je me suis contenté du rajouter le son.
"manque App.Path à l'init, donc chemin forcément faux"
Tu peux préciser STP je n'ai pas de problème moi.
"il faut gérer un Asynchrone (sinon effet de lagg affreux)"
C'est quoi effet de lagg.
"aussi un NoSound"
Où ? Moi quand il ne trouve pas le fichier son il me fait un beep par défaut.
En tout cas merci de tes commentaires.
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 2 janv. 2006 à 23:36
salut,
pas mal la verticale....
dur d'évaluer le travail réel (puisque départ existant). problèmes :
1* manque App.Path à l'init, donc chemin forcément faux.
2* les Flags de son sont incorrects. il faut gérer un Asynchrone (sinon effet de lagg affreux) et aussi un NoSound (ou NoBeep, je ne sais plus) pour ne pas avoir d'erreur en cas de fichier introuvable
(pas noté)
PCPT [AFCK]
11 janv. 2006 à 12:39
11 janv. 2006 à 11:42
Non non moi j'ai la transparence.
10 janv. 2006 à 12:11
(c'est du bricolage)
pour le Gif, VB sais les afficher (sans transparence)...
10 janv. 2006 à 11:50
Si du moins chez moi (Picturebox et Image et form et sans doute tous les autres). J'utilise VB6 SP6.
"pour revenir aux sons, je dis juste que si l'utilisateur, dans VB spécifie le chemin :
.\Data\Sounds\BtnOver.wav"
Je suppose que le .\ indique un chemin relatif. C'est une commande sque je ne connaissais pas. C'est pour ça que je ne comprenais pas. Merci.
Bon faut que j'aille au boulot. A+
10 janv. 2006 à 11:44
ca n'est pas impossible a réaliser, loin de là... ma bonne raison est la flemme ^^
pour revenir aux sons, je dis juste que si l'utilisateur, dans VB spécifie le chemin :
.\Data\Sounds\BtnOver.wav
ton application doit le stocker ainsi...
et jouer :
LireWav App.Path & Mid$(m_SonOnMouseOver, 2)
de sorte que quel que soit le chemin de l'executable, si les sons sont bien placés, ils seront lus
10 janv. 2006 à 11:32
J'essaye en même temps de rajouter à ce contrôle une image de fond. Dans ton bouton tu utilise la fonction Blit, ce qui te prive notamment de de la transparence GIF. Comme tu as surement une bonne raison peux-tu me la donner (la bonne raison) voire si je persiste.
10 janv. 2006 à 11:22
si tu la modifie, en la remplacant par une version, avec un chemin complet, ca fonctionnera, bien sur, mais si l'utilisateur distribue son application, avec ton OCX, le chemin ne sera plus dynamique, car stocké en dur, et aucun son ne sortira...
c'est un peu la même chose avec les couleurs...
quand l'utilisateur transmet une couleur systeme, il faut la traduire en couleur (RGB). Il ne faut pour autant pas modifier la propriété (BackColor, par exemple)
je sais pas si je suis très clair^^
10 janv. 2006 à 10:23
Pourquoi ?
9 janv. 2006 à 12:40
if left$(m_SonOnMouseOver,1) = "." Then
LireWav App.Path & Mid$(m_SonOnMouseOver, 2)
Else
LireWav m_SonOnMouseOver
End If
*LireWav est là pour l'exemple, il ne faut pas ici modifier m_SonOnMouseOver
9 janv. 2006 à 12:08
Pour éviter le problème du path, j'avais mis ces 2 lignes (impossible d'utiliser app.pathe dans les déclarations). Ca ne marche visiblement pas chez vous mais ça fait quoi ? C'est à l'initialisation ? ou au moment de jouer le son ? A aucun moment je ne définit le chemin ? Pourquoi le mémorise-t-il dans l'éxécutable ?
If m_SonOnMouseOver "OverDefaut.wav" Then m_SonOnMouseOver App.Path & "\OverDefaut.wav"
If m_SonOnClick "ClickDefaut.wav" Then m_SonOnClick App.Path & "\ClickDefaut.wav"
4 janv. 2006 à 12:51
3 janv. 2006 à 15:45
tu ne dois pas chercher le son juste avec son nom (clickdefaut.wav) mais précédé de son chemin, qui lui sera différent sur quasiment chaque PC...
l'erreur est dans les InitProperties, ReadProperties et WriteProperties
une possibilité est de faire un enum (0 rien, 1 click, 2 = over) et selon cet enum, tu choisis le chemin
*lagg : comme tu lis "synchro", l'API prend la main, c'est à dire que pendant qu'elle joue le son (trouvé ou non), elle empêche le reste, à savoir par exemple les effets MouseOver, etc...
*NoSound : c'est justement pour ne pas entendre ce Beep d'erreur
perso je déclare :
Private Const SND_FILENAME = &H20000 ' name is a file name
Private Const SND_ASYNC = &H1 ' play asynchronously
Private Const SND_NODEFAULT = &H2 ' silence not default, if sound not found
puis une perso (pour la lisibilité)
Private Const SND_PERSONNAL = (SND_FILENAME Or SND_ASYNC Or SND_NODEFAULT)
et c'est ensuite ce dernier Flag pour jouer le son
sndPlaySound m_SonOnMouseOver, SND_PERSONNAL
3 janv. 2006 à 12:18
D:\4 Programation\Divers Visual\Contrles\autres bouttons\ClickDefaut.wav
en gros, si on n'a pas la même arborescence, impossible d'entendre la moindre note...
3 janv. 2006 à 11:27
La note je m'en tape (même si elle fait plaisir quand elle est bonne). Je publie mon travail pour remercier tout ceux qui publie le leur. Je suis un farouche défenseur du libre.
3 janv. 2006 à 11:25
"manque App.Path à l'init, donc chemin forcément faux"
Tu peux préciser STP je n'ai pas de problème moi.
"il faut gérer un Asynchrone (sinon effet de lagg affreux)"
C'est quoi effet de lagg.
"aussi un NoSound"
Où ? Moi quand il ne trouve pas le fichier son il me fait un beep par défaut.
En tout cas merci de tes commentaires.
2 janv. 2006 à 23:36
pas mal la verticale....
dur d'évaluer le travail réel (puisque départ existant). problèmes :
1* manque App.Path à l'init, donc chemin forcément faux.
2* les Flags de son sont incorrects. il faut gérer un Asynchrone (sinon effet de lagg affreux) et aussi un NoSound (ou NoBeep, je ne sais plus) pour ne pas avoir d'erreur en cas de fichier introuvable
(pas noté)
PCPT [AFCK]