Newsgroup: it.comp.lang.visual-basic
Titolo: TypeOf

Ciao a tutti,
sto impazzendo...
If TypeOf myObject.Text Is Integer Then
....
End If
mi restituisce un errore di compilazione....
Come si controlla il tipo di una variabile???
Grazie 
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 End If
myObject.Text cosa sarebbe?
Credo che TypeOf si usi per controllare il tipo di una variabile 
dimensionata come Object, e quindi con tipo generico.
Una cosa del genere:
Dim MyObject As Object
MyObject = 12345
If TypeOf MyObject Is Integer Then
     'MyObject č un intero
End If
-- 
news:it-alt.comp.software.openoffice : Il newsgroup dedicato a
OpenOffice.org, la suite open source di applicazioni per ufficio.
Saluti, VITRIOL

> myObject.Text cosa sarebbe?
Sarebbe(nella mia testa) il valore che ricevo da una casella di testo.


 questo articolo e` stato inviato via web dal servizio gratuitohttp://
www.newsland.it/newssegnala
 gli abusi ad 
a...@newsland.it
Forse vuoi controllare se nella casella è stato inserito un valore
intero? Se così fosse, non puoi utilizzare TypeOf, che invece può
essere utilizzato per identificare il tipo di dato in una variabile
Variant. Perchè non utilizzi IsNumeric(myObject.Text)? Non controlla
se c'è un intero, ma se c'è un numero (quindi anche con virgole). Però
potresti utilizzare qualcosa del tipo:
If IsNumeric(myObject.Text) and instr(myObject.Text,",")=0

 Sarebbe(nella mia testa) il valore che ricevo da una casella di testo.
La proprietą Text di una TextBox restituisce sempre e soltanto una 
stringa. Non ha senso controllare il tipo.
Vuoi controllare se una casella di testo contiene un intero? Se usi Vb 
2005 puoi utilizzare il metodo TryParse su questa falsariga:
Dim myInt As Integer
If Integer.TryParse(TextBox1.Text, myInt) Then
    MessageBox.Show(myInt.ToString & " č un intero")
Else
    MessageBox.Show(" Non č un intero")


 If IsNumeric(myObject.Text) and instr(myObject.Text,",")=0
Cosě funziona solo se il separatore decimale č la virgola :-)


> If IsNumeric(myObject.Text) and instr(myObject.Text,",")=0
Grazie mille! era proprio quello che cercavo...
novizio nell'arte del vba...
-- 
questo articolo e` stato inviato via web dal servizio gratuito 


 novizio nell'arte del vba...
Ah, era VBA... non lo uso quindi non so indicarti, ma attento che così 
funziona solo se in separatore è la virgola. Non mi pare proprio un buon 
metodo.


 intero?
If (Val(myObject.Text) - Int(Val(myObject.Text)) = 0 Then
    MsgBox "Il numero è Intero"
    ' [.....]
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

    MsgBox "Il numero è Intero"
pero' un controllo numerico prima ci vuole
Private Sub Command1_Click()
    MsgBox (Val(Text1) - Int(Val(Text1)) = 0)
End Sub
da' true anche se c'e' una stringa.
btw, sul mio pc da' true con "1,5", false con "1.5".
ciao, a.

 da' true anche se c'e' una stringa.
Giusto. Allora:
If IsNumeric(myObject.Text) And myObject.Text = Int(myObject.Text) Then
   MsgBox "Il numero è Intero"


 buon metodo.
 If IsNumeric(myObject.Text) And InStr(myObject.Text, Mid(CStr(1.1), 2, 1)) 
= 0
Cosě dovrebbe funzionare con qualunque separatore decimale.
William.