Oppure

Loading
01/12/10 19:04
dante
salve a tutti, oggi volevo creare un programma che dicesse: se a = v fai apparire nella label lblRisultato: "è vero", se invece no, controlla b --> se b = v allora fai apparire nella label lblRisultato: "è vero", se invece no, fai apparire nella label lblRisultato: "è falso"
siccome ho sempre lavorato coi numeri, non so come assegnare ad a la LETTERA contenuta in una text box, ovvero: ho sempre fatto: a = Val(txtValore1)
b = Val(txtValore2)
e con questi comandi ho assegnato ad a e b (dopo averle naturalmente dichiarate sotto option explicit)
valori numerici, ma non so come assegnargli valori letterari.
questa è la stringa:

Option Explicit
Dim a, b As Double

Private Sub cmdCalcola_Click()
a = txtValore1
b = txtValore2
If txtValore1 = "v" Then
lblRisultato.Caption = "è vero"
Else: GoTo if2
if2:
If txtValore2 = "v" Then
lblRisultato.Caption = "è vero"
Else: lblRisultato.Caption = "è falso"
End If
End If
End Sub

voglio specificare che poi inserirò l'if destinato a controllare che i valori nelle due caselle siano per forza o "v" o "f" attraverso un altro OR.
Grazie in anticipo
aaa
02/12/10 7:27
Sal47
Ciao,
sono principiante anch'io ma ho provato a dichiarare "Dim a, b As String" subito dopo Option Explicit e mi sembra che vada bene. Saluti.
Sal47
aaa
02/12/10 16:07
GrG
Come dice Sal47 basta dichiarare:

Dim nome_Variabile as String
aaa
07/12/10 21:53
Berto
Se il programma è così semplice il tuo algoritmo può andare, ma penso che faresti meglio a usare delle variabili Boolean se come input puoi avere solo vero o falso.
Se impostassi l'input solo come (1=vero/0=falso) allora il programma potrebbe essere ridotto a:
Option Explicit
Private Sub cmdCalcola_Click()
Dim a As Boolean
Dim b As Boolean
a = txtValore1.Text
b = txtValore2.Text
If a Or b <> False Or True Then
    MsgBox "Errore"
    Exit Sub
Else
    lblRisultato1.Caption = a
    lblRisultato2.Caption = b
End If
End Sub

Uso un solo controllo dell'input. Se poi hai solo questa sub non ti conviene dichiarare le variabili come globali. E, almeno a me, quando provo a dichiarare due variabili nella stessa riga (es: dim a,b as boolean) una delle due non viene intesa come boolean quindi ti consiglio di dichiararle sempre su righe diverse. A meno che tu non voglia programmare anche in c/c++. Penso che usare delle string(senza neanche dichiararne prima la lunghezza) sia uno spreco di RAM in un simile programma...
aaa
07/12/10 21:54
Berto
Se il programma è così semplice il tuo algoritmo può andare, ma penso che faresti meglio a usare delle variabili Boolean se come input puoi avere solo vero o falso.
Se impostassi l'input solo come (1=vero/0=falso) allora il programma potrebbe essere ridotto a:
Option Explicit
Private Sub cmdCalcola_Click()
Dim a As Boolean
Dim b As Boolean
a = txtValore1.Text
b = txtValore2.Text
If a Or b <> False Or True Then
    MsgBox "Errore"
    Exit Sub
Else
    lblRisultato1.Caption = a
    lblRisultato2.Caption = b
End If
End Sub

Uso un solo controllo dell'input. Se poi hai solo questa sub non ti conviene dichiarare le variabili come globali. E, almeno a me, quando provo a dichiarare due variabili nella stessa riga (es: dim a,b as boolean) una delle due non viene intesa come boolean quindi ti consiglio di dichiararle sempre su righe diverse. A meno che tu non voglia programmare anche in c/c++. Penso che usare delle string(senza neanche dichiararne prima la lunghezza) sia uno spreco di RAM in un simile programma...
aaa