Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Aiuto con variabile booleana

    Salve a tutti! mi hanno consigliato questo forum che vedo è pieno di persone competenti, a cui sicuramente il mio problema sembrerà semplicissimo (spero!!)

    Il codice in questione è questo:

    If (etalst.ListIndex <> -1) Then
    eta = True
    Else
    eta = False
    End If


    If (nazionelst.ListIndex <> -1) Then
    nazione = True
    Else
    nazione = False
    End If


    If (sessolst.ListIndex <> -1) Then
    sesso = True
    Else
    sesso = False
    End If

    If (provincialst.ListIndex <> -1) Then
    provincia = True
    Else
    provincia = False
    End If

    If (attivitalst.ListIndex <> -1) Then
    attivita = True
    Else
    attivita = False
    End If

    If (regionelst.ListIndex <> -1) Then
    regione = True
    Else
    regione = False
    End If

    If nazionelst.ListIndex = 92 Then
    If (eta & sesso & nazione & provincia & attivita & regione) = True Then
    inseriscicmd.Enabled = True
    Else
    inseriscicmd.Enabled = False
    End If
    End If

    If nazionelst.ListIndex <> 92 Then
    If (eta & sesso & nazione & attivita) = False Then
    inseriscicmd.Enabled = True
    Else
    inseriscicmd.Enabled = False
    End If
    End If

    Avevo 6 listbox e ognuna di essa ho assegnato una variabile booleana per capire se la listbox è stata selezionata o meno..
    Ma quando va a controllare nell'if e vede che tutte le variabili sono VERE nonostante questo va all'else... capito il problema?!

    altrimenti sapreste dirmi un metodo per risolvere questa cosa:

    ho queste 6 listbox e un pulsante inserisci che si deve attivare solo quando tutte e 6 sono cliccate o 4 (per un caso specifico ma poi posso vedermelo io)..


    grazie mille anticipatamente

  2. #2

    Re: Aiuto con variabile booleana

    Originariamente inviato da kissingyou90
    ..........
    Il codice in questione è questo:

    .............
    If (eta & sesso & nazione & provincia & attivita & regione) = True Then
    .........
    ...credo che tu ti stia confondendo tra & che è l'operatore
    di concatenamento tra stringhe
    e AND operatore logico tra boolean

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    758
    Ha ragione sspintux, naturalmente. Ma oltre a questo il tuo codice può essere migliorato rendendolo molto più conciso. Non hai bisogno di una variabile booleana per ciascuna listbox in quanto la condizione "Listbox.ListIndex <> -1" può essere usata direttamente nella If conclusiva.

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    In realta' tutta la sequenza di If ... Else andrebbe riscritta in modo che sia piu' concisa, chiara ed efficiente ...

    Per darti solo un'idea ... se scrivi

    codice:
    If nazionelst.ListIndex = 92 Then
    e poco dopo

    codice:
    If nazionelst.ListIndex <> 92 Then
    e' evidente che potresti scrivere, piu' comodamente

    codice:
    If nazionelst.ListIndex = 92 Then
    ...
    Else
    ...
    End If
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    senza contare che, anche se volessi usare le variabili booleane questo:

    codice:
    If (etalst.ListIndex <> -1) Then
    eta = True
    Else
    eta = False
    End If
    può essere scritto anche così se non vado errato:

    codice:
    eta = (etalst.ListIndex <> -1)
    ps: il vb6 conosce l'operatore ternario?

    risparmi più della metà del codice.. e cmq meglio se messo tutto nell'ultima if come consigliato

  6. #6
    si, infatti io avevo fatto con l'else, ma pensavo ci fossero problemi con questo e ho cambiato con due if..
    ho cambiato l'operatore e funziona correttamente, grazie mille .. scusate la gaf ma sono ancora agli inizi con vb

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da kissingyou90
    gaf
    gaffe ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.