PDA

View Full Version : [VB6] Lunghezza del record non valida


error 404
26-11-2008, 14:58
Questo è il codice:
Private Sub cmdAvanti_Click()

DimensioneRecord = Len(Personaggio)
Open "C:\VB6\gioco\prsg\personaggio.dat" For Random As #1 Len = DimensioneRecord

Personaggio.nome = nome
Personaggio.casata = casata
Personaggio.sesso = sesso
Personaggio.razza = razza
Personaggio.forza = lblForzaTot.Caption
Personaggio.destrezza = lblDestrezzaTot.Caption
Personaggio.difesa = lblDifesaTot.Caption
Personaggio.resistenza = lblResistenzaTot.Caption
Personaggio.magia = lblMagiaTot.Caption
Personaggio.difesaMagica = lblDifesaMagicaTot.Caption

Put #1, 1, Personaggio

Close #1
End Sub

mi segna la riga: "Put #1, 1, Personaggio".

Non riesco a trovare il problema... ma sono pronto a scometterci che è più semplice di quanto credo...

Spero possiate aiutarmi. Grazie ciao.

MarcoGG
26-11-2008, 15:58
Un gioco di ruolo in VB6 ? :)
Il problema è che forse non hai dato una dimensione fissa ai campi stringa nel tuo Type :
Private Type Personaggio
id As Long
nome As String * 20
casata As String * 20
sesso As String * 10
'... altri attributi ...
End Type

Questo nel caso "Personaggi.dat" sia una collezione di personaggi... :

'questa è roba mia...
Dim percorso As String
percorso = App.Path & "\"
Dim nomeFile As String
nomeFile = "Personaggi.dat"

Dim mioPsg As Personaggio
Dim numRec As Long
Open percorso & nomeFile For Random As #1 Len = Len(mioPsg)
For numRec = 1 To 3 'Inserisco 3 personaggi
mioPsg.id = numRec
mioPsg.nome = "NomePsg_" & numRec
mioPsg.casata = "Casata_" & numRec
mioPsg.sesso = "Femmena"
'... altri attributi ...
Put #1, numRec, mioPsg
Next numRec
Close #1

Se Personaggi.dat è invece un personaggio per file, ometti l'id che è superfluo. ;)

error 404
26-11-2008, 17:38
Un gioco di ruolo in VB6 ? :) Che brutta cosa vero? :asd:
No non è un GDR, è un giochino così fatto alla scazzona tanto per mettere in atto qualcosa di nuovo con VB e non andare a passo-professoressa.

Il problema è che forse non hai dato una dimensione fissa ai campi stringa nel tuo Type :
Private Type Personaggio
id As Long
nome As String * 20
casata As String * 20
sesso As String * 10
'... altri attributi ...
End Type
Si, era proprio la mancanza della dimensione delle stringa a generare il problema, adesso è risolto. Grazie mille.

error 404
26-11-2008, 21:49
Già che ci sono: sapete mica dirmi se è possibile far si che quando il mouse passa sopra un oggetto (che sia una label, un bottone o altro) appaia come un'etichetta che spieghi cosa è ciò su cui è posizionato il cursore?

Grazie

error 404
28-11-2008, 13:28
Già che ci sono: sapete mica dirmi se è possibile far si che quando il mouse passa sopra un oggetto (che sia una label, un bottone o altro) appaia come un'etichetta che spieghi cosa è ciò su cui è posizionato il cursore?

GrazieNessuno?

MarcoGG
28-11-2008, 14:22
E' il classico ToolTip, no ?

Private Sub Command3_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Command3.ToolTipText = Command3.Name

End Sub
;)