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

    [VB] Variabili in più sub

    Come faccio ad usare una variabile che ho definito in una sub nella sub successiva?
    codice:
     Private Sub cdmTimer1_Click()
        Dim datTimer1 As Date
        datTimer1 = Date
        txtTimer1.Text = datTimer1
    End Sub
    
    Private Sub cmdTimer2_Click()
        Dim datTimer2 As Date
        datTimer2 = DateAdd("d", 5, Date)
        txtTimer2.Text = datTimer2
    End Sub
    Private Sub cmdDiff_Click()
        Dim intDDiff As Integer
        intDDiff = DateDiff("d", datTimer2, datTimer1)
        lblDiff.Caption = intDDiff
    End Sub
    La differenza mi dà zero perchè mi risultano vuote datTimer1 e datTimer2.
    Enrico Frison
    El signore ghe da e suche a chi che no ga i porsei!

  2. #2
    hai due possibilità:
    1. dichiari le variabili nalla sezione "generale - dichiarazioni" del form, così la vedono tutti gli oggetti contenuti in quel form.
    2. la passi da una sub all'altra col metodo byref.

    ma nel tuo caso credo che sia possibile, e conveniente, solo la prima possibilità.


    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  3. #3
    Come ho fatto a non pensarci prima????
    Grazie mille, ora provo
    Enrico Frison
    El signore ghe da e suche a chi che no ga i porsei!

  4. #4




    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  5. #5
    Ecco il primo problema...
    Se scrivo
    codice:
        Dim datTimer1, datTimer1 As Date
        datTimer2 = txtTimer2.Text
        datTimer1 = txtTimer1.Text
    Nelle dichiarazioni mi dice che non posso farlo al di fuori di una routine....
    Enrico Frison
    El signore ghe da e suche a chi che no ga i porsei!

  6. #6
    nella sezione generale-dichiarazioni:

    Dim datTimer1 As Date, datTimer2 As Date


    nella/e sub del timer o nella form_load:

    datTimer2 = txtTimer2.Text
    datTimer1 = txtTimer1.Text

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  7. #7
    Quello che vorrei fare è un form, con due campi ed una label. A fianco ad ogni campo un pulsate che setta al momento attuale il valore del .text e un pulsante che setti la label come differenza del prima e del dopo.
    Semplice no?
    E invece no. Perchè nel caso la differenza superi le 24 si sballa tutto. ho provato un po' in tutti i modi anche con artifizi filosofici, ma niente questo è il risultato se vuoi darci un occhio...
    codice:
    Function Calc(Adesso, Dopo)
        Dim Inizio, Fine, Altro As Integer
        Inizio = Format$(Adesso, "yyyymmddhhmmss")
        Fine = Format$(Dopo, "yyyymmddhhmmss")
        Dim intOre As Integer
        Dim intMin As Integer
        Dim intSec As Integer
        If Mid(Fine, 7, 2) > Mid(Inizio, 7, 2) Then
            intOre = (Mid(Fine, 7, 2) - Mid(Inizio, 7, 2)) * 24
        End If
            intOre = intOre + Mid(Fine, 9, 2) - Mid(Inizio, 9, 2)
            If Mid(Fine, 9, 2) < Mid(Inizio, 9, 2) Then
                intMin = 60
            End If
            intMin = intMin + Mid(Fine, 11, 2) - Mid(Inizio, 11, 2)
            If intMin = 60 Then intMin = 0
            intSec = Mid(Fine, 13, 2) - Mid(Inizio, 13, 2)
            Calc = intOre & ":" & intMin & ":" & intSec
    End Function
    
    
    Private Sub cmdCalc_Click()
        Dim Inizio, Fine As String
        Inizio = txtNow.Text
        Fine = txtThen.Text
        lblCalc.Caption = Calc(Inizio, Fine)
    End Sub
    
    
    Private Sub cmdNow_Click()
        txtNow.Text = Now
    End Sub
    
    Private Sub cmdThen_Click()
        txtThen.Text = Now
    End Sub
    Public Sub cdmTimer1_Click()
        Dim datTimer1 As Date
        txtTimer1.Text = datTimer1
    End Sub
    
    Public Sub cmdTimer2_Click()
        Dim datTimer2 As Date
        txtTimer2.Text = datTimer2
    End Sub
    Private Sub cmdDiff_Click()
        Dim intDDiff As Integer
        intDDiff = DateDiff("d", datTimer2, datTimer1)
        lblDiff.Caption = intDDiff
    End Sub
    Anche se penso di abbandonare la strada che scompone i dati, cosa dici?
    Enrico Frison
    El signore ghe da e suche a chi che no ga i porsei!

  8. #8
    Utente di HTML.it L'avatar di darkblOOd
    Registrato dal
    Jul 2001
    Messaggi
    2,212
    Originariamente inviato da freezone
    Ecco il primo problema...
    Se scrivo
    codice:
        Dim datTimer1, datTimer1 As Date
        datTimer2 = txtTimer2.Text
        datTimer1 = txtTimer1.Text
    Nelle dichiarazioni mi dice che non posso farlo al di fuori di una routine....

  9. #9
    Originariamente inviato da darkblOOd



    :zamm: Adesso mi metto sotto forse è il caso di studiare un po', ma qui al lavoro non mi lasciano approfondire... devo "produrre"!!!
    Enrico Frison
    El signore ghe da e suche a chi che no ga i porsei!

  10. #10
    Come si fa a ricavare i minuti da una stringa tipo NOW?
    Se faccio DatePart("m", Now) mi sa che mi estrae il mese...
    Consigli?
    Enrico Frison
    El signore ghe da e suche a chi che no ga i porsei!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.