VB/VB.Net Delegate : Fonctionnement

A

Anonymous

Invité
#1
Bonjours à tous ,

Je viens de commencer le VB.net et C# .

J'aimerais avoir plus d'information sur le delegate.

Par exemple pour voir le nom et niveau du personnage , j'ai ce packet la :

Case 151
ID_Message = New Messages.Game.Character.Choice.CharactersListMessage
ID_Message.Deserialize(PacketData)
Dim Nom_Bot = ID_Message.characters(0).characterminimalpluslookinformations.characterminimalinformations.name ' ici on choisi le dernier perso utilisé (0)
Dim Niveau = " Niveau : " & ID_Message.characters(0).characterminimalpluslookinformations.characterminimalinformations.level ' ici on choisi le dernier perso utilisé (0)
'Me.LBL_INFO.Text = "Personage connecté : " & Nom_Bot & Niveau
'Me.LBL_INFO.Refresh()
Dim ID_Bot = ID_Message.characters(0).characterminimalpluslookinformations.characterminimalinformations.id ' ici on choisi le dernier perso utilisé (0)
Dim param1 As New Dofus.DofusWriter
param1.WriteUInt32(ID_Bot)
Dofus.DofusWriter.Send(152) ' selection du perso (0)
Ou dois-je mettre le delegate pour voir dans mon label nommé LBL_INFO nom du personnage et niveau ?

Merci de votre aide et à bientôt
 
Inscrit
29 Septembre 2011
Messages
393
Reactions
3
#2
chensu a dit:
Bonjours à tous ,

Je viens de commencer le VB.net et C# .

J'aimerais avoir plus d'information sur le delegate.

Par exemple pour voir le nom et niveau du personnage , j'ai ce packet la :

Case 151
ID_Message = New Messages.Game.Character.Choice.CharactersListMessage
ID_Message.Deserialize(PacketData)
Dim Nom_Bot = ID_Message.characters(0).characterminimalpluslookinformations.characterminimalinformations.name ' ici on choisi le dernier perso utilisé (0)
Dim Niveau = " Niveau : " & ID_Message.characters(0).characterminimalpluslookinformations.characterminimalinformations.level ' ici on choisi le dernier perso utilisé (0)
'Me.LBL_INFO.Text = "Personage connecté : " & Nom_Bot & Niveau
'Me.LBL_INFO.Refresh()
Dim ID_Bot = ID_Message.characters(0).characterminimalpluslookinformations.characterminimalinformations.id ' ici on choisi le dernier perso utilisé (0)
Dim param1 As New D..D.
param1.WriteUInt32(ID_Bot)
D..D..Send(152) ' selection du perso (0)
Ou dois-je mettre le delegate pour voir dans mon label nommé LBL_INFO nom du personnage et niveau ?

Merci de votre aide et à bientôt
Si tu regarde plus loin

Code:
    Delegate Sub _Label(ByVal Label As Label, ByVal a As String)
    Sub Set_Label(ByVal Label As Label, ByVal a As String)
        Label.Text = a
    End Sub
pour une Label c'est simple tu a que Le nom de la Label + le Text

donc :

Code:
 Dim Delegué As New _Label(AddressOf Set_Label)
//////////////// 
puis ton invoke
Invoke(Delegué, "Nom de ta Label", "Letext")
je sais pas bien expliquer j'espère tu a compris
 
A

Anonymous

Invité
#3
En gros dans la fonction du dit les propriété et le nom de contrôle que tu touche :)
 
A

Anonymous

Invité
#4
En gros pour une progresse bar

Code:
'Ici les déclaration a faire
Delegate Sub _Progressebar(ByVal progressebar As ProgressBar, ByVal value As Integer)
Dim deleguerprograssebar As New _Progressebar(AddressOf Set_Progressebar)
'Ici la fonction
    Sub Set_Progressebar(ByVal progressebar As ProgressBar, ByVal value As Integer)
        progressebar.Value = value
    End Sub
Ensuite pour l'utiliser
Code:
Invoke(deleguerprograssebar, ProgressBar1, mavaleureninteger)
Bon généralement tu utilise que les label et les progresse bar ce qui enfin de compte ne seras vraiment pas très chiant ! Montre moi que tu as compris en le faisant pour une picturebox !
 
A

Anonymous

Invité
#5
Delegate Sub _PictureBox(ByVal picturebox As PictureBox, ByVal value As Integer)
Dim deleguerpicturebox As New _PictureBox(AddressOf Set_PictureBox)
'Ici la fonction
Sub Set_PictureBox(ByVal picturebox As PictureBox, ByVal value As Integer)
picturebox.Value = value
End Sub
Invoke(deleguerpicturebox, PictureBox1, mavaleureninteger)
C'est bien sa ?
 
A

Anonymous

Invité
#6
Le but d'une picturebox et de mettre une image dedans pourquoi ?
Code:
 ByVal value As Integer
ici je mais la proriété a toucher dans la progressebar donc sa value ( valeur )
pour une image on veut touché a sa propriété qui est image sa donneras
Code:
ByVal image As Image
Mais comme c'est une image il faut dire d'ou il viens sur le disque dur :) ( une petit épreuve de ma part )
Fait des test et des que sa marches tu devrais être bon avec les opération inter-thread !
Envoie le code dans le post que je voit sa ( oublie pas de tester chez toi )
 
A

Anonymous

Invité
#7
Daccord donc :

Delegate Sub _PictureBox(ByVal picturebox As PictureBox, ByVal image As Image)
Dim deleguerpicturebox As New _PictureBox(AddressOf Set_PictureBox)
'Ici la fonction
Sub Set_PictureBox(ByVal picturebox As PictureBox, ByVal image As Image)
picturebox.Value = value
End Sub
C'est sa ?
 
A

Anonymous

Invité
#8
Les déclarations :
Code:
Delegate Sub _picturebox(ByVal picturebox As PictureBox, ByVal x As Image)
Dim picturebox As New _picturebox(AddressOf Set_image_picturebox)
Dim monimage As Image
L'assignation :
Code:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
monimage = Image.FromFile("lol.png")
End Sub
La fonction :
Code:
    Sub Set_image_picturebox(ByVal picturebox As PictureBox, ByVal x As Image)
        PictureBox1.Image = x
    End Sub
L’interprétation :
Code:
Invoke(picturebox, PictureBox1, monimage)
Sa rime :p
 
Haut Bas