Problème Vb listbox

    Publicités

Users Who Are Viewing This Thread (Total: 0, Members: 0, Guests: 0)

Status
Not open for further replies.

Misuki

Git Wizard en freelance
V
Ancien staff
Jun 15, 2012
2,303
66
954
Tu essaye de cast un string en long / integer. C'est pas comme cela que ça marche en fait. Une fois que tu fais "items.add(hack1.Name)" tu rajoute pas l'entité en entier, tu rajoute seulement l'attribut "Name".

Tu peux faire plutôt "items.add(Hack1)", seulement le nom afficher dans la ListBox aura l'arborescence vers ta structure. (Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris!)

Du à mon manque de pratique, je n'ais pas encore rechercher de solution pour le nom.
 

Misuki

Git Wizard en freelance
V
Ancien staff
Jun 15, 2012
2,303
66
954
à la limite, je me demande si l'utilisation d'une datagridview serais pas un peu mieux, malgré que tu n'affiches que le nom. Il me semble qu'il est possible d'instauré une checkbox dans le tableau, ça peut te permettre de savoir ce que l'utilisateur à cocher.
 

Astropilot

The Lord
V.I.P
V
Jan 6, 2011
9,285
18
1,254
France
Tu définie ta liste dans un bouton.
mais si tu ne l'utilise pas c'est normal que ca marche pas ^^'
car la ou est l'erreur tu cherche dans ta structure. Mais c'est une structure pas ta liste donc c'est pas pret de fonctionner :)

Edit: tu ne met même pas l'item dans ta liste aussi :/.
 
Last edited:

-WonderFul

Membre
Dec 10, 2014
70
0
312
In my ωorld, bitch.
Si justement j'ajoute une item (Hack) avec le bouton 1 et celle si contien plus variable, Avec le bouton 2, le lis (hack1), je recupère 2 variable (Long, et integer) Avec la propriéter "SelectedItem" puis le je les stock dans x et y je les intégré dans le WirteMemory et normalement sa devrait fonctionner :/ Je n'ai pas besoin d'avoir la valeur directement de base dans ma listbox

Edit:
Si j'ai bien compris tu veux que je creer une list appart dans une extention contenant le nom, la valeur et l'adress puis que je les Ajoute drectement dans ma listbox avant de les lire ? :)
 
Last edited:

Misuki

Git Wizard en freelance
V
Ancien staff
Jun 15, 2012
2,303
66
954
Personnellement, ce que j'aurais fait, malgré que ce ne soit pas tellement propre:

1) J'aurais pré-rempli ma ListBox avec le nom des fonctions que je veux. Et même pire que ça, j'aurais pas fait une ListBox, j'aurais fait une datagridview.

2) J'aurais mis un bouton avec le texte "Ajouter". à l'appui, le bouton complétera les informations du cheat choisis en fonction de son nom (donc avec ta structure IdAddress). Du coup, j'aurais une list globale de IdAddress que j'aurais appelés "cheatsToActivate", qui contiendra, à la fin de la configuration, toutes les informations des cheats choisis.

3) J'aurais mis un autre bouton "Activer" pour activer chaque cheats contenus dans la list cheatsToActivate.
 

Astropilot

The Lord
V.I.P
V
Jan 6, 2011
9,285
18
1,254
France
D'après les screens de ton code la liste MesHack est totalement inutile car tu la définie mais tu ne l'utilise pas.
De plus si tu la definie ici tu ne peux l utiliser que dans le block ou elle est et non ailleurs.
 
Apr 26, 2011
1,315
2
944
26
In my home
Discord
brokeos
J'ai fait quelque chose, je sais pas si c'est ce que tu voulais faire !

Code:
Public Class Form1
    Dim MesHack As New Dictionary(Of String, IdAdress)
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim Hack1 As New IdAdress
        Hack1.Name = "1 Hit"
        Hack1.Id = 1593591259
        Hack1.Adress = &H54AFE9
        MesHack.Add(Hack1.Name, Hack1)
        ListBox1.Items.Add(Hack1.Name)
    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        Dim Hack1 As New IdAdress
        Hack1 = MesHack(ListBox1.SelectedItem)
        Dim x As Long = Hack1.Id
        Dim y As Long = Hack1.Adress
        MsgBox(y & " " & x)
    End Sub

    Structure IdAdress
        Public Id As Long
        Public Adress As Integer
        Public Name As String
    End Structure
End Class
 
Apr 26, 2011
1,315
2
944
26
In my home
Discord
brokeos
Au plaisir :p

Si tu veux retirer un hack au faite :

Code:
    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        MesHack.Remove(ListBox1.SelectedItem)
        ListBox1.Items.RemoveAt(ListBox1.SelectedIndex)
    End Sub

Et si tu veux les lister :

Code:
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
        For Each _hack As IdAdress In MesHack.Values
            MsgBox(_hack.Name)
        Next
    End Sub
 

-WonderFul

Membre
Dec 10, 2014
70
0
312
In my ωorld, bitch.
Merci, j'ai fais une petit mise a jours :
Code:
Imports System.IO ' J'importe System.IO pour lire mon extention

Public Class Form2

    Structure IdAdress ' Je creer ma structure plus 3 propritéters qui chacune trois propritéter
        Public Id As Long
        Public Adress As Integer
        Public Name As String
    End Structure
    Dim MesHack As New Dictionary(Of String, IdAdress) ' Je creer un dictionnaire contenant tous mes Hack



    Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ' Je creer les objets'
        OpenDialog1.ShowDialog()
        Dim Hack(10) As IdAdress ' Je crais 10 objets Hack de ma structure IdAdress'
        Dim selectFile As String = String.Empty ' Je Creer la valeur selectFile, je dis que c'est un String Unicode
        selectFile = OpenDialog1.FileName ' Je donne comme valeur a SleectFile, l'adresse rechercher dans OpenDialog1
        Dim Lignes As String() = (System.IO.File.ReadAllLines(selectFile)) 'Je creer l'objet Lignes, je lui donne la fonction de  lire ligne pas ligne l'extention'


        'HACK 1'##########################################################################################
        Hack(1).Name = Lignes(0) 'L'objet Hack(1) a pour valeur la ligne 0 lettre&nombre
        Hack(1).Id = Lignes(1) ' "                             " la ligne 1 nombre
        Hack(1).Adress = Lignes(2) ' ""                     ""     la ligne 2 lettre&nombre
        MesHack.Add(Hack(1).Name, Hack(10)) ' j'enregiste L'objet Hack1 dans Meshack sur 10 Objet Hack
        OrainsListBox1.Items.Add(Hack(1).Name) ' J'ajoute  l'item Hack(1).name donc le nom dans ma listbox

        'HACK 2 '#####################################################################################
        Hack(2).Name = Lignes(3)
        Hack(2).Id = Lignes(4)
        Hack(2).Adress = Lignes(5)
        MesHack.Add(Hack(2).Name, Hack(10))
        OrainsListBox1.Items.Add(Hack(1).Name)




        '####################################################################################
        My.Computer.Audio.Play(My.Resources.Musique, AudioPlayMode.BackgroundLoop) ' Musique de fond
    End Sub

    Private Sub FlatToggle1_CheckedChanged(sender As Object) Handles FlatToggle1.CheckedChanged ' Musique Off/On
        If FlatToggle1.Checked = True Then
            My.Computer.Audio.Play(My.Resources.Musique, AudioPlayMode.BackgroundLoop)
        Else : FlatToggle1.Checked = False
            My.Computer.Audio.Stop()

        End If
    End Sub





    Private Sub OrainsButton2_Click_1(sender As Object, e As EventArgs) Handles OrainsButton2.Click
        Dim Hack(10) As IdAdress 'Je redonne les 10 Objet de ma structure

        'HACK1'##############################################################################
        Hack(1) = MesHack(OrainsListBox1.SelectedItem) 'Je sort mon objet enregister dans mon dictionnaire
        Dim x1 As Long = Hack(1).Id 'J'enregistre hack1.id dans x
        Dim y1 As Integer = Hack(1).Adress 'J'enregistre Hack1.Adress de y

        WriteLong("S4Client.exe", x1, y1) ' Jecrie dans la memoire
        'Hack2'################################################################################
        Hack(2) = MesHack(OrainsListBox1.SelectedItem)
        Dim x2 As Long = Hack(2).Id
        Dim y2 As Integer = Hack(2).Adress
        WriteLong("S4Client.exe", x2, y2)

    End Sub


End Class

---------- Message ajouté à 15h16 ---------- Le message précédent était à 15h08 ----------

J'ai un problème a ce niveau :
Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris!
Sa m'ouvre les valeur pour toute mes item alors que je chois une seul item
 

-WonderFul

Membre
Dec 10, 2014
70
0
312
In my ωorld, bitch.
Ah desoler chui pas trop theorie je comprends directement sur le code en lui même :)
Sinon une aide pour cette erreur:
212421wakanim.png

Sa m'ouvre les valeur pour toute mes item alors que je chois une seul item
J'ai essailez d'utiliser Un If mais je sa marcher pas (je pense que je les mal utiliser)
 

ragnarock

Membre actif
Mar 22, 2010
194
0
917
Yop, vous vous compliquez la vie là^^

pour le problème du nom suffit d'override la fonction ToString dans ta structure. Quand tu ajoutes un object à un composent visuel et que ça doit l'afficher, c'est toujours la fonction ToString qui est appelée.

Ensuite y'a juste à récup' le SelectedItem (ou tous, j'ai pas torp compris ce que tu veux faire...) du listbox et voilà.

PHP:
Public Class Form1
    Structure IdAdress
        Public Id As Long
        Public Adress As Integer
        Public Name As String

        Public Overrides Function ToString() As String
            Return Name
        End Function
    End Structure

    Private Sub btnAddToListBox_Click(sender As Object, e As EventArgs) Handles btnAddToListBox.Click
        Dim hack As New IdAdress With
        {
            .Name = "Hack",
            .Id = 11111111,
            .Adress = &HFFFFFFF
        }

        lbAddresses.Items.Add(hack)
    End Sub

    Private Sub btnWriteMemory_Click(sender As Object, e As EventArgs) Handles btnWriteMemory.Click
        If lbAddresses.SelectedIndex = -1 Then
            Return
        End If

        Dim item As IdAdress = lbAddresses.SelectedItem

        WriteLong("process", item.Adress, item.Id)
    End Sub
End Class

Et un conseil, essaye de donner des noms plus explicites, parce qu'après avec des x, x1, x2, y1, y2, id, ... c'est facile de s'y perdre^^
 
Last edited:

Misuki

Git Wizard en freelance
V
Ancien staff
Jun 15, 2012
2,303
66
954
Yop, vous vous compliquez la vie là^^

pour le problème du nom suffit d'override la fonction ToString dans ta structure. Quand tu ajoutes un object à un composent visuel et que ça doit l'afficher, c'est toujours la fonction ToString qui est appelée.

Ensuite y'a juste à récup' le SelectedItem (ou tous, j'ai pas torp compris ce que tu veux faire...) du listbox et voilà.

PHP:
Public Class Form1
    Structure IdAdress
        Public Id As Long
        Public Adress As Integer
        Public Name As String

        Public Overrides Function ToString() As String
            Return Name
        End Function
    End Structure

    Private Sub btnAddToListBox_Click(sender As Object, e As EventArgs) Handles btnAddToListBox.Click
        Dim hack As New IdAdress With
        {
            .Name = "Hack",
            .Id = 11111111,
            .Adress = &HFFFFFFF
        }

        lbAddresses.Items.Add(hack)
    End Sub

    Private Sub btnWriteMemory_Click(sender As Object, e As EventArgs) Handles btnWriteMemory.Click
        If lbAddresses.SelectedIndex <> -1 Then
            Return
        End If

        Dim item As IdAdress = lbAddresses.SelectedItem

        WriteLong("process", item.Adress, item.Id)
    End Sub
End Class

Et un conseil, essaye de donner des noms plus explicites, parce qu'après avec des x, x1, x2, y1, y2, id, ... c'est facile de s'y perdre^^

J'avais penser à l'override mais je ne savais pas comment faire, merci.
 
Status
Not open for further replies.