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

DirectX Discussion :

[DX VB NET]Affichage dans un panel et fermeture


Sujet :

DirectX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 35
    Par défaut [DX VB NET]Affichage dans un panel et fermeture
    Mon programme commence par un listBox (lb1)dans lequel je selectionne des vertices à afficher. Pour la premiere selection tout fonctionne bien , le device s'affiche impeccable dans un panel (pann01)sur ma form... Le problème commence quand je veux reprendre la main et que je sélectionne un autre item à afficher dans mon panel. Je n'arrive pas à supprimer (arreter) le device précedent...et afficher le suivant, si quelqu'un peut m'aider çà fait une semaine que je suis bloqué par ce problème...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
        Private Sub lb1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lb1.SelectedIndexChanged
            Dim ldep As Integer
            ldep = CType(lb1.SelectedItem, Integer)
     
     
     
            Dim frm As New vue
     
            frm.tab(ldep, mon_fichier)
     
            frm.BorderStyle = Me.pann01.BorderStyle
            frm.Location = Me.pann01.Location
            frm.ClientSize = Me.pann01.ClientSize
            frm.BackColor = Me.pann01.BackColor
            Me.Controls.Remove(pann01)
            Me.Controls.Add(frm)
     
     
            Try
     
                frm.Show()
     
                While frm.Created
     
                    frm.InitializeGraphics()
                    Application.DoEvents()
                End While
            Finally
                frm.Dispose()
            End Try
     
     
     
        End Sub

  2. #2
    Membre expérimenté Avatar de ShadowTzu
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Juin 2005
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Juin 2005
    Messages : 243
    Par défaut
    qui a t'il a l'interrieur de InitializeGraphics ?
    et qu'est ce que tu souhaite faire au juste?
    créer/détruire le device sans arrete n'est pas une bonne idée, pourquoi dois tu le faire?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 35
    Par défaut
    Mon "InitializeGraphics"...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Public Sub InitializeGraphics()
            Dim presentParams As New PresentParameters
            presentParams.Windowed = True
            presentParams.SwapEffect = SwapEffect.Discard
     
            device = New device(0, DeviceType.Hardware, Me, CreateFlags.SoftwareVertexProcessing, presentParams)
     
            vb = New VertexBuffer(GetType(CustomVertex.PositionColored), ((my_sommet01.Count) * 3), device, Usage.Dynamic Or Usage.WriteOnly, CustomVertex.PositionColored.Format, Pool.Default)
     
            AddHandler vb.Created, AddressOf Me.OnVertexBufferCreate
            OnVertexBufferCreate(vb, Nothing)
        End Sub 'InitializeGraphics

    Je veux alternativement afficher divers graphiques(vertices), qui se trouvent dans un listBox et non pas dans un form(là ca marche) mais dans un panel qui se trouve sur ma form pricipale ou se trouve notement le listBox...et je n'arrive pas afficher le deuxième parceque je n'arrive pas à fermer le premier...

  4. #4
    Membre expérimenté Avatar de ShadowTzu
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Juin 2005
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Juin 2005
    Messages : 243
    Par défaut
    essaye d'ajouter avant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    device = New device(0, DeviceType.Hardware, Me, CreateFlags.SoftwareVertexProcessing, presentParams)
    ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if not device is nothing then
    device.dispose
    device=nothing
    end if
     
    if not vb is nothing then
    vb.dispose
    vb=nothing
    end if
    sinon evite de mettre l'initialisation du device dans une boucle...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 35
    Par défaut
    J'ai essayé, mais çà ne change rien...
    Par contre si je simplifie comme çà:

    Private Sub lb1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lb1.SelectedIndexChanged

    Dim ldep As Integer
    ldep = CType(lb1.SelectedItem, Integer)

    If Not Me.pann01.Controls.Count = 0 Then
    Me.pann01.Controls.Clear()
    End If

    Dim frm As New vue

    frm.tab(ldep, mon_fichier)
    Me.pann01.Controls.Add(frm)
    Try
    frm.Show()
    While frm.Created
    frm.InitializeGraphics()
    Application.DoEvents()
    End While
    Finally
    frm.Dispose()
    End Try
    End Sub

    Cà marche...presque...

    Je récupére au bout de plusieur "lb1_SelectedIndexChanged" une erreur:

    " Erreur lors de la création d'un handle de fenêtre."

  6. #6
    Membre expérimenté Avatar de ShadowTzu
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Juin 2005
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Juin 2005
    Messages : 243
    Par défaut
    essaye plutot comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Try
    frm.Show()
    frm.focus()
    frm.InitializeGraphics()
    While frm.Created
    Application.DoEvents()
    End While
    Finally
    frm.Dispose()
    End Try

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 11/04/2014, 14h40
  2. Problème d'Affichage dans un Panel
    Par A&Nexus dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 15/04/2008, 10h24
  3. [VB.NET] affichage dans un tableau créé dynamiquement
    Par elastoplas dans le forum ASP.NET
    Réponses: 3
    Dernier message: 10/11/2006, 08h25
  4. [VB.NET]Affichage dans un ComboBox
    Par ba10 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 01/10/2006, 00h37
  5. [VB.Net] Affichage dans un NumericUpDown
    Par narscience dans le forum Windows Forms
    Réponses: 2
    Dernier message: 03/08/2006, 05h45

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