Durante una prova di drag con una picturbox con la proprietà enabled=false mi è uscito questo errore:
Il programma si è bloccato inaspettatamente con un segnale #11.
Essendo disabilitata non dovrebbe prendere in considerazione nessun evento o metodo, giusto?
Da cosa sarà dipeso?
La procedura incriminata è questa (è una parte del mio programma di simulazione della Roulette):
Public Sub Fiches_MouseDrag()
Dim fi As Image
With Last
If Capitale.value > Val(.tag) Then
fi = New Image(Me) As "fi"
Else
Message.Info("Non hai abbastanza soldi.\nAumenta il capitale")
Return
Endif
End With
End
A parte il fatto che non è ancora completa, le fiches le ho raggruppate nel gruppo omonimo, per poterle draggare sulle varie caselle del tavolo per fare una puntata, e nel Tag c'è il valore di ogni singola fiches.
Nel menù c'è una voce che serve ad iniziare o interrompere una seduta di gioco, e a seconda del suo stato le fiches sono abilitate o no.
Capitale è una Valuebox con i soldi che ci rimangono attualmente, il problema sorge se dentro c'è un valore differente da zero, sia che le fiches siano abilitate o no.
In ogni caso il messaggio di errore completo è:
Il programma si è bloccato inaspettatamente
con un segnale #11.
Per favore riportare l'errore a
gambas@users.sourceforge.net o supporto@gambas.it per un supporto in italiano.
Non ci sto capendo più niente. :rolleyes:
Se faccio come dici tu, usando Cvariant, mi da errore type mismatch, si aspetta un intero invece di una stringa, e non mi da segnale #11, se uso Cint il tipo di variabile gli va bene ma ricompare il segnale #11.
Ho provato pure ad usare una label al posto della valuebox ma non cambia nulla. E sono bloccato. :hatecomputer:
Precedentemente avevo provato a remmare tutte le istruzioni per poi togliere il rem uno alla volta ed il problema sta proprio nel confronto. Boh...
Edit: trovata la gabola. il problema stava nella linea DOPO:
fi = New Image(Me) As "fi"
E' stato sufficiente remmarla ed agire in un'altra maniera, quella consigliatami da Vuott nel thread in cui chiedevo lumi sul drag&drop, ovvero usando gli esempi allegati a Gambas. Adesso funziona benissimo. :hard:
Vuott, mi presti il tuo avatar "asinesco"? :-[
Non ci sto capendo più niente. :rolleyes:
Se faccio come dici tu, usando Cvariant, mi da errore type mismatch,
Strano, ma vero. Per non ricevere l'errore "Mismatch", bisogna scrivere:
Dim NuVariant As Variant = 15000
Dim StriMia As String = "111999"
Dim Num2 As Variant
Num2 = Val(StriMia)
If NuVariant < Num2 Then
Print "NuVariant = '" & NuVariant & "'"
Print "Num2 = '" & Num2 & "'"
Endif
Ecco il risultato delle istruzioni Print
NuVariant = '15000'
Num2 = '111999'
Comunque, mi fa piacere che ce l'hai fatta. Però mi farebbe piacere leggere le istruzioni dopo la modifica vincente. :D
:ciao: