Visualizzazione risultati 1 fino 15 di 15

Discussione: Non riesco a far incrementare la variabile (Visual Basic)

  1. #1
    Guest

    Predefinito

    Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = vbKeyReturn Then
    If capitolo < 40 Then capitolo = capitolo + 1
    Text1.Text = ""
    Text1.Text = parte1(capitolo)
    End If
    End Sub
    In pratica ho creato un array :
    parte1(40)
    è ho messo in ogni zona dell'array una stringa.
    Tipo
    parte1(1)="Io mi chiamo"
    parte1(2)="Giorgio"
    parte1(3)="e vivo in...."

    ecc.
    Poi ho dichiarato la variabile capitolo. In pratica, quello che volgio ottenere è che ogni volta che sulla casella text1 do l'invio mi dia il valora successivo di parte1. Solo che a quanto pare capitolo non incrementa di uno sebbene io abbia scritto
    capitolo= capitolo +1
    Non capisco perchè. Il problema è tutto in capitolo o i o come cavolo lo volete chiamare. Fatto sta che la variabile in questione non incrementa. Credo che abbia a che fare con il keydown, però non ne sono sicuro.

    Se qualcuno può darmi una mano e vedere dove sbaglio. Sennò la programmazione del mio GDR non può andare avanti.

  2. #2
    Guest

    Predefinito

    sposto nel livello 1 ;)

  3. #3
    Guest

    Predefinito

    Sì, ma potevi pure avvisarmi. Non sapevo di questa nuova sezione.

    Cmq c'è qlcn ke sa rispondermi?

  4. #4
    Guest

    Predefinito

    Citazione Originalmente inviato da Tabboz
    Sì, ma potevi pure avvisarmi. Non sapevo di questa nuova sezione.

    Cmq c'è qlcn ke sa rispondermi?
    nuova che?? ma se è da un pezzo ke c'è :D

  5. #5
    aeclanum non è connesso Utente
    Data registrazione
    25-03-2003
    Messaggi
    210

    Predefinito

    non è che la variabile è automatica e quindi ogni volta che chiami la routine si azzera?

  6. #6
    Guest

    Predefinito

    x Duccio è vero, però non era una sezione dedicata a VB

    x aeclanum : come faccio a spaerlo? Io ho solo dikiarato capitolo con dim

  7. #7
    Guest

    Predefinito

    Citazione Originalmente inviato da Tabboz
    x Duccio è vero, però non era una sezione dedicata a VB
    Web Design, HTML, CSS, JavaScript, VBScript, ActiveX, JAVA, Flash, ...

  8. #8
    Guest

    Predefinito

    Citazione Originalmente inviato da aeclanum
    non è che la variabile è automatica e quindi ogni volta che chiami la routine si azzera?
    A quanto pare funziona così, perchè ora ho memorizzato il valore in una textbox e lo faccio incrementare nella textbox. Risultato: Funziona alla grande. Però nn è ke posso creare una taxtbox ogni volta ke ho questo problema. Sennò è un casino.

  9. #9
    Guest

    Predefinito

    perchè la variabile non si azzeri, scrivi
    dim capitolo(40) as string
    ma scrivilo prima di tutte le sub-routine, perchè se no la variabile rimane interna alla sub-routine in cui viene dichiarata

  10. #10
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    Boh chissiricorda..
    comunque penso che sia un problema di "variable scope", e comunque non sappiamo in che contesto sei... boh prova a dichiararla Public altrimenti "esagera" con Static
    Ormai ho rimosso completamente quella merdaccia :P
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  11. #11
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    Una cosa mi ricordo, per non farti prendere per il c*lo con variabili inizializzate al volo (senza dichiarazione esplicita) metti la scritta:
    Option Explicit
    nel Main o come cacchio si chiama. In questo modo se la variabile capitolo non risulta quella che ti aspetti di aver dichiarato ti salta fuori un errore che non hai dichiarato la variabile, insomma in questo modo devi dichiarare tutto, sarà una scocciatura per alcuni ma è conveniente per non cadere nei tranelli malefici del vb.
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  12. #12
    Guest

    Predefinito

    La variabile l'ho dikiarata come integer, perciò quello non è il problema.

    Forse, come dice wanttobreakfree, devo ridikiararla all'interno id ogni routine, o magari dikiararla global.

    Beh, ora provo queste 2 opzioni, poi vi diko.

  13. #13
    Guest

    Predefinito

    dichiara la variabile globale in questo modo...

    inserisci un "modulo di codice" dal menu "Progetto"-"aggiungi modulo"

    dalla finestra che appare scegli "modulo"

    dichiara all'interno di questo modulo la variabile ed essa sarà accessibile da qualsiasi routine del tuo progetto.....

  14. #14
    aeclanum non è connesso Utente
    Data registrazione
    25-03-2003
    Messaggi
    210

    Predefinito

    Comunque ci sarà un motivo se si pensa che VB funziona solo in casi semplici!
    A mio parere uno dei motivi è proprio nella gestione 'allegra' delle variabili!

  15. #15
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    Se non sbaglio "Global" si usava nella preistoria VB (tipo vb3) quando ancora vagavo nel pieno marasma della programmazione... recentemente (da vb5) si sono adeguati al Public (sempre per quel vago ricordo che ho) e altre diciture finalmente ortodosse per gli scope quali Static, Friendly, Private, Protected come tutti i linguaggi Object Oriented.
    Ovviamente parlo di come devono essere "visibili" alcune proprietà (variabili di una classe) rispetto all'esterno... dipende tutto da come hai impostato il project, in che contesto sei.

    Tabboz comunque ti consiglio vivamente di dare uno sguardo al "variable scope" per non incappare nelle loro "facilitazioni" pseudo-userfriendly controproducenti e malate.
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •