Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Errore software Basic

    Ho un problema con il comando di un pulsante in programmazione Basic.

    Allora, il codice:

    codice:
    MSFlexGrid1.Col = 1
    MSFlexGrid1.Row = 1
    datomax = Val(MSFlexGrid1.Text)
    
    For indice = 1 To Val(Text3.Text)
        MSFlexGrid1.Row = indice
        dato1 = Val(MSFlexGrid1.Text)
        MSFlexGrid1.Row = indice + 1
        dato2 = Val(MSFlexGrid1.Text)
        If dato1 > dato2 Then
            If dato1 > datomax Then
                datomax = dato1
                Label3.Caption = datomax
            End If
        End If
    Next indice
    funziona benissimo e mi trova il valore massimo tra N valori inseriti in una griglia.

    Il codice

    codice:
    MSFlexGrid1.Col = 1
    MSFlexGrid1.Row = 1
    datomax = Val(MSFlexGrid1.Text)
    
    For indice = 1 To Val(Text3.Text)
        MSFlexGrid1.Row = indice
        dato1 = Val(MSFlexGrid1.Text)
        MSFlexGrid1.Row = indice + 1
        dato2 = Val(MSFlexGrid1.Text)
        If dato1 < dato2 Then
            If dato1 < datomax Then
                datomax = dato1
                Label3.Caption = datomax
            End If
        End If
    Next indice
    dovrebbe funzionare allo stesso modo ma trovando il valore minimo tra gli stessi valori inseriti nella stessa griglia.

    Il primo codice (ricerca massimo) funziona, ma la ricerca del minimo (secondo codice) non va.
    Dove può stare l'errore???

    Il codice completo è:

    codice:
    Private Sub Command1_Click()
    MSFlexGrid2.Row = Val(Text1.Text)
          If Text1.Text <> "" Then
            MSFlexGrid2.Col = 0
            MSFlexGrid2.Text = Text1.Text
            End If
          If Text2.Text <> "" Then
            MSFlexGrid2.Col = 1
            MSFlexGrid2.Text = Text2.Text
            End If
    End Sub
    
    Private Sub Command2_Click()
     MSFlexGrid1.Row = Val(Text1.Text)
          If Text1.Text <> "" Then
            MSFlexGrid1.Col = 0
            MSFlexGrid1.Text = Text1.Text
            End If
          If Text2.Text <> "" Then
            MSFlexGrid1.Col = 1
            MSFlexGrid1.Text = Text2.Text
            End If
          
    
    End Sub
    
    Private Sub Command3_Click()
    
    MSFlexGrid1.Col = 1
    MSFlexGrid1.Row = 1
    datomax = Val(MSFlexGrid1.Text)
    
    For indice = 1 To Val(Text3.Text)
        MSFlexGrid1.Row = indice
        dato1 = Val(MSFlexGrid1.Text)
        MSFlexGrid1.Row = indice + 1
        dato2 = Val(MSFlexGrid1.Text)
        If dato1 < dato2 Then
            If dato1 < datomax Then
                datomax = dato1
                Label3.Caption = datomax
            End If
        End If
    Next indice
    
    End Sub
    
    Private Sub Command4_Click()
    
    MSFlexGrid1.Col = 1
    MSFlexGrid1.Row = 1
    datomax = Val(MSFlexGrid1.Text)
    
    For indice = 1 To Val(Text3.Text)
        MSFlexGrid1.Row = indice
        dato1 = Val(MSFlexGrid1.Text)
        MSFlexGrid1.Row = indice + 1
        dato2 = Val(MSFlexGrid1.Text)
        If dato1 > dato2 Then
            If dato1 > datomax Then
                datomax = dato1
                Label3.Caption = datomax
            End If
        End If
    Next indice
    
    End Sub
    
    Private Sub Form_Load()
    
    Dim Num As Integer
    
    MSFlexGrid1.ColWidth(0) = 900
    MSFlexGrid1.ColWidth(1) = 1000
     
    MSFlexGrid1.Row = 0
              
    MSFlexGrid1.Col = 0
    MSFlexGrid1.Text = "Posizione"
    MSFlexGrid1.Col = 1
    MSFlexGrid1.Text = "Numero"
    MSFlexGrid1.Col = 0
        
        For Num = 1 To 10
            MSFlexGrid1.Row = Num
            MSFlexGrid1.Text = Num
           
        Next Num
        
        
            
    End Sub

  2. #2
    Dov'è l'errore...
    Ho provato a fare modifiche ma il risultato (errato) è identico.

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ma perche' trovi cosi' i massimi e i minimi?

    Non mi sembra che il metodo che usi sia corretto, ne' per il massimo, ne' per il minimo ...

    Quante sono le righe della griglia?

    P.S. Quale Basic stai utilizzando? Devi inserirlo nel titolo ... e il Basic non e' trattato in questo forum ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4
    Visual Basic 6 utilizziamo.
    ll professore in classe ha detto di utilizare questa modalità.
    La griglia l'ho fatta da 100 righe...ma anche se si inseriscono solo 4 valori, scrivendo il (4) su una text box il programma si limita alla ricerca tra i primi 4 valori.
    Ad ogni modo la ricerca del massimo funziona, ma del minimo no.
    Come lo avresti fatto tu?

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da deluxpc
    Visual Basic 6 utilizziamo.
    C'e' un forum apposito per il VB ... e comunque va specificato nel titolo.

    Come lo avresti fatto tu?
    Ad esempio, per non essere troppo diverso dal tuo codice

    codice:
        MSFlexGrid1.Col = 1
        MSFlexGrid1.Row = 1
        datomax = Val(MSFlexGrid1.Text)
    
        For indice = 2 To Val(Text3.Text)
            MSFlexGrid1.Row = indice
            dato = Val(MSFlexGrid1.Text)
            If dato > datomax Then
                datomax = dato
                Label3.Caption = datomax
                DoEvents
            End If
        Next indice
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Per il massimo funziona e ti ringrazio...forse così è migliore.
    Non riesco però ad adattarla per farla funzionare col minimo.

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da deluxpc
    Non riesco però ad adattarla per farla funzionare col minimo
    Non ci sono tante modifiche da fare ... possibile che non ci arrivi da solo ?

    codice:
        MSFlexGrid1.Col = 1
        MSFlexGrid1.Row = 1
        datomin = Val(MSFlexGrid1.Text)
    
        For indice = 2 To Val(Text3.Text)
            MSFlexGrid1.Row = indice
            dato = Val(MSFlexGrid1.Text)
            If dato < datomin Then
                datomin = dato
                Label3.Caption = datomin
                DoEvents
            End If
        Next indice
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    fino a quì appunto ci ero arrivato...ma non funziona, il clic va a vuoto...

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da deluxpc
    fino a quì appunto ci ero arrivato...ma non funziona, il clic va a vuoto...
    Ma che vuol dire "il clic va a vuoto" ???

    Scusa ... ma una risposta del genere serve solo a generare un'altra domanda, non a far capire ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Il clic sul pulsante Trova massimo funziona perfettamente sia con il codice di prima che avevo fatto io sia con il codice che gentilemente mi hai passato, ma con il tuò è professionalmente parlando migliore.

    Il clic su Trova minimo va a vuoto, ossia quando clicco su Trova minimo non fa nulla, non esce il valore minimo, clicco e non succede nulla.

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.