Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 34
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    64

    [VB6] Controllare i click di un CommandButton

    Buon pomeriggio ragazzi,
    nel mio programma ho creato due CommandButton...un CommandButton(cmd1) deve effettuare certe operazioni se l'altro pulsante(cmd3) è stato cliccato almeno una volta. In pratica voglio controllare se il cmd3 è stato cliccato almeno una volta, così cmd1 in base a questa informazione effettuerà certe operazioni. Esempio:


    codice:
    Private Sub cmd1_Click()
    If cmd3 è stato cliccato = True Then
    Totale = Totale -1
    ElseFf cmd3 è stato cliccato = False Then
    Totale = Totale +1
    End If
    End Sub

    Sono stato chiaro? Se si...mi aiutate?


    Grazie in anticipo!

  2. #2
    Banalmente puoi tenere il pulsante cmd1 disabilitato fin da subito. Al click dell'altro cmd lo abiliti.

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    64
    No, perchè mi serve che cmd1&cmd3 devono essere abilitati sempre!

  4. #4
    Basta usare un semplice flag a livello di form...
    codice:
    Dim cmd3cliccato As Boolean ' magari dandogli un nome un po' più significativo
    
    ' ...
    
    Private Sub cmd3_Click()
        cmd3cliccato=True
    End Sub
    
    Private Sub cmd1_Click()
        If cmd3cliccato Then
            Totale = Totale -1
        Else
            Totale = Totale +1
        End If
    End Sub
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    64
    Se scrivo:

    codice:
    Dim cliccato As Boolean
    
    Private Sub cmd1_Click()
    On Error Resume Next
    If cliccato Then
    MsgBox ("Meggaggio Prova 1!")
    'inizio salvataggio db
    
    Set Conn = New ADODB.Connection
    Set rs = New ADODB.Recordset
    Set Conn1 = New ADODB.Connection
    Set RS1 = New ADODB.Recordset
    
    
    Conn.Open str
    rs.Open "Table1", Conn, 3, 3
    
    Conn1.Open str1
    RS1.Open "Table1", Conn1, 3, 3
    
    For i = 1 To n
    rs.AddNew
    rs("Macchina") = Numeri(i)
    rs("Valore") = valore(i)
    rs("Data") = data
    rs.Update
    Next i
    Set Conn = Nothing
    Set rs = Nothing
    
    
    
    RS1.AddNew
    RS1("Data") = data
    RS1("Versamento") = Text7.Text
    RS1("Eccedenza") = Text2.Text
    RS1("Rimanenza") = Text3.Text
    RS1("Carico") = Text4.Text
    RS1.Update
    Set Conn1 = Nothing
    Set RS1 = Nothing
    
    'fine salvataggio db
    Totale = Totale - 1
    txtTotale.Text = Totale
    Else
    MsgBox ("Messaggio Prova 2!")
    Text2.Enabled = False
    Text3.Enabled = False
    Text4.Enabled = False
    a = Text10.Text
    temp2 = Text2.Text
    temp3 = Text3.Text
    temp4 = Text4.Text
    totTemp = a + temp2 + temp4 - temp3
    Text1.Text = totTemp
    
    'inizio salvataggio db
    
    Set Conn = New ADODB.Connection
    Set rs = New ADODB.Recordset
    Set Conn1 = New ADODB.Connection
    Set RS1 = New ADODB.Recordset
    
    
    Conn.Open str
    rs.Open "Table1", Conn, 3, 3
    
    Conn1.Open str1
    RS1.Open "Table1", Conn1, 3, 3
    
    For i = 1 To n
    rs.AddNew
    rs("Macchina") = Numeri(i)
    rs("Valore") = valore(i)
    rs("Data") = data
    rs.Update
    Next i
    Set Conn = Nothing
    Set rs = Nothing
    
    
    
    RS1.AddNew
    RS1("Data") = data
    RS1("Versamento") = Text7.Text
    RS1("Eccedenza") = Text2.Text
    RS1("Rimanenza") = Text3.Text
    RS1("Carico") = Text4.Text
    RS1.Update
    Set Conn1 = Nothing
    Set RS1 = Nothing
    
    'fine salvataggio db
    
    Totale = Totale + 1
    txtTotale.Text = Totale
    End If
    End Sub
    codice:
    Private Sub cmd3_Click()
        cliccato = True
    
    'altro codice
    ....
    
    End Sub

    Scrivendo in questo modo...se noti ho inserito un messaggio di prova per vedere quando vengono eseguite determinate operazioni; ma se clicco una volta o due o tre volte su cmd3 mi viene visualizzato il messaggio:

    codice:
    MsgBox ("Messaggio Prova 1!")
    E su questo ci siamo; ma se non clicco neanche una volta mi viene visualizzato sempre lo stesso messaggio e non il messaggio:

    codice:
    MsgBox ("Messaggio Prova 2!")
    Cosa sbaglio?

  6. #6
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Se non verifichi la condizione, come fa ad apparire il "Messaggio Prova 2!" ?

    Tra l'altro l'On Error Resume Next è sbagliato, non va usato, soprattutto quando si 'manovra' un recordset.

  7. #7
    Salve.
    Uso molto degli switch o flag, booleiani, per sapere se è stata o meno compiuta una certa zione.
    Però fondamentale c'è una cosa:
    Ogni volta che si 'interrogano' tali campi, nella parte se è avvenuta tale azione, dovremo rimettere 'a posto' tale flag...., in modo che risia 'pronto' e riessere messo a 'true' quando riaccade quell'azione, altrimenti in tutta l'applicazione, rimarrà 'vero'.
    Chiaramente a meno che non serva in maniera assoluta e una tantum' nell'applicazione, sapere se è avvenuta o no quella azione...
    Non so se sono riuscito a far comprendere il concetto...
    Un salutone dall'Alta Maremma...!

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    64
    Scusa gibra ma nella condizione, controllo se "cliccato" è vero, quindi se il cmd3 è stato premuto. È sbagliato? Poi grazie per il consiglio sulla gestione degli errori(On Error Resume Next).

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Vuoi dire che se scrivi

    codice:
    Dim cliccato As Boolean
    
    Private Sub cmd1_Click()
        If cliccato Then
            MsgBox ("Meggaggio Prova 1!")
        Else
            MsgBox ("Messaggio Prova 2!")
        End If
    End Sub
    
    Private Sub cmd3_Click()
        cliccato = True
    End Sub
    non funziona come ti aspetti?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    64
    Si...perché?

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.