Newsgroup: it.comp.lang.visual-basic
Titolo: Evento Change di una Text

Potrei controllare attraverso un exit code dato da una varibile
temporanea se un utente inserisce numeri invece che stringhe?
Grazie a chi mi risponderà!

dankeitalia wrote:

L'exit code di che cosa?
-- 
Ciao,
 Fabrizio
=== 
http://www.negusweb.it
 ===

In delphi la sintassi è questa:
Procedure TfrmMobilificio.txtPrezzochange (sender : TObject)
var
  tmp,i,cod:integer;
  str:string;
Begin
str:=txtprezzo.text;
for i:= 1 to lenght(str) do
begin
   val(txtPrezzo.text,tmp,cod)
if tmp = 1 then
shomessage ('Nella text si possono inserire sono numeri');
end;
end;
Nalla Variabile tmp viene salvato il valore convertito in intero della
stringa txtprezzo, se il valore della variabile cod è 0 vuol dire che
la conversione è andata a buon fine mentre se è 1 la conversione non
è andata a buon fine e la stringa sicuramente conterrà valori
alfanumerici.
esiste una cosa analoga in Visual Basic?

 Grazie a chi mi risponderà!
Se ho capito bene, vuoi una text box che accetti soli numeri, quindi ....
... devi intercettare i tasti premuti e se non sono numeri o caratteri di 
controllo (come il canc o le freccie direzione) gli cancelli.
Private Sub Text1_KeyPress(KeyAscii As Integer)
    Select Case KeyAscii
        Case 0 To 32:   ' caratteri di controllo + lo spazio
        Case 48 To 57:  ' caratteri numerici
        Case Else: KeyAscii = 0 ' tutti gli atri caratteri non sono ammessi
    End Select
End Sub
Ciao.
www.dinasoft.it

esiste una cosa analoga in Visual Basic?
Prova cosi'....io lo intercetterei sul lostfocus, cosi' processi le linee di 
codice solo una volta e non tutte le volte che digiti un caratere (come 
sull'evento change)
private sub Text1_LostFocus()
if   IsNumeric(text1.text)=false then
    msgbox "  Pistola, metti solo dei numeri"
end if
End sub
Baciamo le mani....
Umbe
***************************************************
Un intellettuale seduto va meno lontano di un coglione che cammina
*************************************************** 

 esiste una cosa analoga in Visual Basic?
Oltre alla soluzione di dinasoft, per controllare se una variabile è
un numero puoi usare isNumeric.
Per prendere soltanto n caratteri di una stringa, puoi usare la
funzione mid.
Se hai problemi, fammi sapere.
Ciao, 
     Fabrizio

 controllo (come il canc o le freccie direzione) gli cancelli.
bene.
e se il tasto che schiaccio è shift + ins?
-- 
Salutoni
Sergio
Per rispondere... togli il group dall'indirizzo
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 ha scritto nel 
messaggio news:d8c8kl$i05$1...@news.newsland.it...

a tutto c'è una soluzione ....
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
    If (KeyCode = vbKeyInsert) And (Shift = vbShiftMask) Then KeyCode = 0 ' 
disabilito lo Shift + Ins
End Sub
Ciao.
www.dinasoft.it
 

dinasoft scriveva il 10/06/2005 :

No, dai, seriamente...
Il post di Melchiade era chiaramente provocatorio, nel senso che 
controllare il contenuto di una textbox.text attraverso gli eventi 
Key_qualcosa, è una minchiata infinita, nel senso che esistono diversi 
modi per scrivere porcherie nelle textbox, e che non scatenano tali 
eventi.
Mi auguro veramente che tu non utilizzi quella roba nei software 
'veri', quelli che vendi, per intenderci.
Ciao
Alberto
-- 
"Se viriamo, viriamo viriamo viriamo;
Se andiamo dritti, viriamo"
(Cit. "il tattico")

 ha scritto nel messaggio 
news:mn.54117d56c...@hotmail.com...

Illuminami ....
Ciao.
dinasoft 

 Illuminami ....
Non c'è niente da illuminare.
Già in questo stesso thread c'è un post che consiglia di usare il 
lostfocus. Ottima anche (ed è ciò che, quando posso, faccio anche io) 
la soluzione di greg.


 soluzione di greg.
Sono d'accordo, ma mi sembra più professionale, non meno, impedire di 
inserire caratteri non ammessi.
Ciao.
dinasoft 

Il 13/06/2005, dinasoft ha detto :

Ferma.
Se mi dici che quel controllo sulla digitazione lo fai 'in aggiunta' ad 
un controllo finale, così, tanto per fare una cosina più carina, mi sta 
bene.
Ma tu lo proponevi come *soluzione* per avere una textbox solo 
numerica, tanto che a fronte di una osservazione di Melchiade, hai 
integrato la cosa con un ulteriore controllo, anzichè dire "ma poi alla 
fine...".
E se non esegui un controllo finale, quello è un bug.
Se poi tu ritieni 'professionale' un bug (per quanto esteticamente 
carino), beh, non mi trovi d'accordo.


quelli che vendi, per intenderci.
Si, uso anche quella.
dinasoft 

 Si, uso anche quella.
'anche' è una parola importante.
Se uno ti chiede come attaccare la spina 220V alla presa, e tu gli dici 
"Devi pulire bene la ciabatta", gli dai un consiglio che potrà anche 
essere utile, ma non gli stai dando la soluzione al problema. Se gli 
dici "Inserisci i 3 spinottini nei buchini, ma prima pulisci bene la 
ciabatta", gli dai una risposta.
Tutto qua.
