IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

A partir de la fenêtre "2", lancer une procédure de lecture de son présente sur la fenêtre "1"


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 158
    Par défaut A partir de la fenêtre "2", lancer une procédure de lecture de son présente sur la fenêtre "1"
    Bonjour,

    J'ai, dans ma fenêtre principale, une procédure de lecture de sons "interface".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Imports WMPLib
     
    Public WithEvents Player As New WMPLib.WindowsMediaPlayer
     
    PlayFile("c:\son1.wav")
     
    Private Sub PlayFile(ByVal url As String)
      Player = New WMPLib.WindowsMediaPlayer
      Player.URL = url
      Player.controls.play()
    End Sub
    Il y a 8 sons au total, et ils doivent être aussi utilisé par d'autres fenêtre de mon apllication.
    Le problème, c'est que je ne peux pas faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MainWindow.PlayFile("c:\son1.wav")
    Erreur: Reference to a non-shared member requires an object reference.

    Ma question:
    Comment puis je lancer des sons, dont toutes les procédures d'initialisation et de lecture sont présentes sur "MainWindow", depuis une autre fenêtre (pour éviter de devoir le refaire pour CHAQUE fenêtre)

    Merci pour votre aide!!

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    il y a moyen d'appeler une méthode d'une autre fenetre

    néanmoins si un code n'est pas lié à une fenetre, il suffit de ne pas le mettre dans le code d'une fenetre ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public class Sound
     
      public shared Sub PlayFile(ByVal url As String)
         ....
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre Expert
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Par défaut
    je te conseil aussi d'utiliser une classe comme la indique pol63 mais si tu insiste à utiliser ta méthode tu peux faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Imports WMPLib
     
     
    Shared Public Sub PlayFile(ByVal url As String)
    WithEvents Player As New WMPLib.WindowsMediaPlayer
      Player = New WMPLib.WindowsMediaPlayer
      Player.URL = url
      Player.controls.play()
    End Sub

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 158
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    il y a moyen d'appeler une méthode d'une autre fenetre

    néanmoins si un code n'est pas lié à une fenetre, il suffit de ne pas le mettre dans le code d'une fenetre ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public class Sound
     
      public shared Sub PlayFile(ByVal url As String)
         ....
    J'aimerais faire "comme il faut"...mais étant un peu débutant puis-je te demander de développer un peu plus comment on construit/utilise cette "Class" ?
    Comment, depuis la fenêtre 1, lancerait-on alors la lecture?
    Et comment depuis la fenêtre 2?

    Merci pour ton aide...et ta compréhension! ;-)

  5. #5
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    un cours : http://plasserre.developpez.com/

    il y a beaucoup de concepts à connaitre en .net, certains sont complexes, mais les bases sont rapides à comprendre

    Shared devant un membre signifie qu'il peut etre utilisé sans instance, de n'importe où (partagé pour toutes les instances dans les faits)

    on peut alors l'appeler via nom_de_la_classe.nom_du_membre

    il convient de connaitre aussi le vocabulaire (classe, instance, membre (=sub/function/property/field(=variable)), portée des membres (private/protected/friend/public * shared) etc...)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 158
    Par défaut
    Si je vous comprends bien, vous voulez dire que si dans la fenêtre 1 j'ai:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public class Sound
      Public Shared Sub PlayFile(ByVal url As String)
        Player = New WMPLib.WindowsMediaPlayer
        Player.URL = url
        Player.controls.play()
      End Sub
    End Class
    Je pourrai faire, depuis la fenêtre 2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sound.PlayFile("c:/music.mp3")
    ( ou Window1.Sound.PlayFile("c:/music.mp3") ?)

    Je ne peux pas le tester car ne suis pas devant Visual Studio
    Merci!!

  7. #7
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    le mieux est de faire clic droit sur le projet / ajouter une classe
    tu auras un fichier vide et tu crées ta classe avec le nom que tu veux, et la méthode shared

    depuis window1 ou window2 tu pourras faire le_nom_de_la_classe.le_nom_de_la_sub_shared


    il est possible de mettre une classe dans une autre, donc tu peux mettre la classe sound dans window1, mais comme je l'ai plus tot, il ne faut pas mélanger tout
    faire du son n'est pas lié à ta window1 et n'a donc rien à y faire
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. [AC-2010] Lancer une procédure événementielle à partir d'une macro
    Par JLDunkerque dans le forum VBA Access
    Réponses: 2
    Dernier message: 16/02/2015, 14h14
  2. Passage d'un paramètre avec quote pour une procédure dynamique
    Par dcarroz dans le forum Développement
    Réponses: 7
    Dernier message: 26/01/2010, 11h06
  3. Réponses: 12
    Dernier message: 08/08/2008, 11h03
  4. [vbnet 1.1]Inserer deux simple quote sans texte dans une db
    Par ChristopheOce dans le forum Windows Forms
    Réponses: 8
    Dernier message: 15/03/2007, 08h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo