Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Upis samo brojeva u TextBox kada je isti Name za sva polja

[es] :: Visual Basic 6 :: Upis samo brojeva u TextBox kada je isti Name za sva polja

[ Pregleda: 2819 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Pulapola
Pula

Član broj: 28152
Poruke: 52
194.152.245.*



Profil

icon Upis samo brojeva u TextBox kada je isti Name za sva polja 15.11.2004. u 10:07 - pre 237 meseci
Pozdrav svima,

Kako da pomoću koda

Code:

Private Sub Text1_KeyPress(KeyAscii As Integer)
    If (KeyAscii < Asc("0") Or KeyAscii > Asc("9")) Then
        KeyAscii = 0
        Exit Sub
    End If
End Sub


u nekim poljima upisujem samo brojeve, ako su sva polja u (Name) ista txtField, a različita po Index-u i Tag-u?

Probao sam kao:

Code:
Private Sub txtField(5)_ KeyPress(KeyAscii As Integer)
...


ali ovo ne prolazi...

Hvala unaprijed,
 
Odgovor na temu

mladenovicz
Zeljko Mladenovic
Xoran Technologies, Inc., Ann Arbor, MI,
USA / Software Engineer
Ann Arbor, MI, USA

Član broj: 6598
Poruke: 2065
*.bg.wifi.vline.verat.net.

Jabber: mladenovicz@elitesecurity.org
ICQ: 95144142
Sajt: yubc.net/~mz


Profil

icon Re: Upis samo brojeva u TextBox kada je isti Name za sva polja 15.11.2004. u 10:12 - pre 237 meseci
Code:

Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)

End Sub


Kad imas array kontrola onda event ima Index parametar pomocu koga mozes da utvrdis na kojoj kontroli se desio event
 
Odgovor na temu

Pulapola
Pula

Član broj: 28152
Poruke: 52
194.152.245.*



Profil

icon Re: Upis samo brojeva u TextBox kada je isti Name za sva polja 16.11.2004. u 07:35 - pre 237 meseci
Pozdrav svima,
Željko, hvala na zaista brzom odgovoru.

Na moju žalost, nisam se baš najbolje snašao, pa prilažem kod s kojim sam
nešto pokušao... ako možeš još malo pomoći.
Znači imam tri TextBox-a sa istim nazivom a različitim Index-ima, i trebam u njih
upisivati samo brojeve. Naravno trebao bih i prebacivati Focus-e.

Hvala unaprijed.

Code:
Private Sub txtFields_KeyPress(Index As Integer, KeyAscii As Integer)
    Select Case Index
        Case 6
            Call Brojevi
            txtFields(7).SetFocus
            
        Case 7
            Call Brojevi
            txtFields(14).SetFocus
        
        Case 14
            Call Brojevi
            txtFields(15).SetFocus

    End Select
End Sub

Private Sub Brojevi()
Dim KeyAscii As Integer
        If (KeyAscii < Asc("0") Or KeyAscii > Asc("9")) Then
            KeyAscii = 0
            Exit Sub
        End If
End Sub
 
Odgovor na temu

mladenovicz
Zeljko Mladenovic
Xoran Technologies, Inc., Ann Arbor, MI,
USA / Software Engineer
Ann Arbor, MI, USA

Član broj: 6598
Poruke: 2065
*.bg.wifi.vline.verat.net.

Jabber: mladenovicz@elitesecurity.org
ICQ: 95144142
Sajt: yubc.net/~mz


Profil

icon Re: Upis samo brojeva u TextBox kada je isti Name za sva polja 16.11.2004. u 09:20 - pre 237 meseci
Ne razumem sta hoces da napravis, ali probaj ovo. Ako ti ovaj kod ne radi posao, opisi recima sta hoces.

Code:

Private Sub txtFields_KeyPress(Index As Integer, KeyAscii As Integer)
    Dim SetFocusIndex As Integer
    
    Select Case Index
        Case 6, 7, 14
            If (KeyAscii < Asc("0") Or KeyAscii > Asc("9")) Then
                KeyAscii = 0
            End If
            Select Case Index
                Case 6: SetFocusIndex = 7
                Case 7: SetFocusIndex = 14
                Case 14: SetFocusIndex = 15
            End Select
            txtFields(SetFocusIndex).SetFocus
        Case Else
            '
    End Select
End Sub


 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12851



+4784 Profil

icon Re: Upis samo brojeva u TextBox kada je isti Name za sva polja 16.11.2004. u 13:55 - pre 237 meseci
Malo sam promenio tvoj kod trebalo bi da sada radi. Zeljkov kod takodje radi ali mislim da moze drugacije (videti drugi listing).
Code:
Private Sub txtFields_KeyPress(Index As Integer, KeyAscii As Integer)
    Select Case Index
        Case 6
            Call Brojevi(KeyAscii)
            txtFields(7).SetFocus
            
        Case 7
            Call Brojevi(KeyAscii)
            txtFields(14).SetFocus
        
        Case 14
            Call Brojevi(KeyAscii)
            txtFields(15).SetFocus

    End Select
End Sub

Private Sub Brojevi(KeyAscii)
        If (KeyAscii < Asc("0") Or KeyAscii > Asc("9")) Then
            KeyAscii = 0
            Exit Sub
        End If
End Sub


Code:
Private Sub txtFields_KeyPress(Index As Integer, KeyAscii As Integer)
    Select Case Index
        Case 6, 7, 14
            If (KeyAscii < Asc("0") Or KeyAscii > Asc("9")) Then
                KeyAscii = 0
            End If
            txtFields(Index).SetFocus
        Case Else
            '
    End Select
End Sub

Isto ce raditi jer nema potrebe dodeljivati novoj promenljivoj vrednost indexa pa onda pozivati sa tom novom promenljivom, zar ne?
 
Odgovor na temu

mladenovicz
Zeljko Mladenovic
Xoran Technologies, Inc., Ann Arbor, MI,
USA / Software Engineer
Ann Arbor, MI, USA

Član broj: 6598
Poruke: 2065
*.bg.wifi.vline.verat.net.

Jabber: mladenovicz@elitesecurity.org
ICQ: 95144142
Sajt: yubc.net/~mz


Profil

icon Re: Upis samo brojeva u TextBox kada je isti Name za sva polja 16.11.2004. u 14:10 - pre 237 meseci
Nemam obicaj da KeyAscii prosledjujem van event handlera, ali ocigledno moze i tako.

Citat:
Shadowed
Isto ce raditi jer nema potrebe dodeljivati novoj promenljivoj vrednost indexa pa onda pozivati sa tom novom promenljivom, zar ne?


Zbog ovoga i ne razumemsta covek hoce da napravi (videti i originalni kod)
Code:

            Select Case Index
                Case 6: SetFocusIndex = 7
                Case 7: SetFocusIndex = 14
                Case 14: SetFocusIndex = 15
            End Select
            txtFields(SetFocusIndex).SetFocus


ako kucas non-numeric karakter na textboxu sa indexom 6,7,14 fokus se prosledjuje textboxu sa indexom 7,14, 15. Znaci, fokus se ne vraca na istu kontrolu na kojoj se desio KeyPress (mada bi trebalo da ta kontrola ima fokus kad je taster pritisnut, osim ako nije tab taster u pitanju)
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12851



+4784 Profil

icon Re: Upis samo brojeva u TextBox kada je isti Name za sva polja 16.11.2004. u 15:12 - pre 237 meseci
Moja greska. Bio sam brzoplet i nisam video da se neslazu brojevi iz Case uslova i Index textbox-a koji treba da dobije fokus. Ovo je totalno uvrnuto, nece moci da upise dvocifren broj a da se ne zavitlava sa fokusima.

Ono sa prosledjivanjem sam uradio samo da mu pokazem u cemu je pogresio ako radi tako kako je krenuo.
 
Odgovor na temu

Pulapola
Pula

Član broj: 28152
Poruke: 52
*.adsl.net.htnet.hr.



Profil

icon Re: Upis samo brojeva u TextBox kada je isti Name za sva polja 17.11.2004. u 08:54 - pre 237 meseci
Pozdrav svima,

Prvo) Željku i Shadowed-u, dugujem veliko izvinjenje, što sam postavio nejasno pitanje
i uputio primjer koda koji mi u stvari nije potreban. Shadowed je u pravu, sve je ispalo
“totalno uvrnuto”. Neće se više ponoviti. Big Sorry... svima.

Drugo) Željko, tvoj kod, radi odlično, kada su ista polja po nazivu (različiti Index-i)
ali kada se upisuje samo jedan broj (od 0 do 9).
Ne može dvocifreni broj (Shadowed, opet u pravu). Odličan kod, svakako će poslužiti.

Meni je problem kontrolirati pojedina polja (isti naziv, različiti Index-i), kada treba
upisati kao napr. polja: Najviša Cijena (txtFields(6)),
Najniža cijena (txtFields(7)), Količina (txtFields(14)) i.t.d.
Naravno ima puno drugih polja (neka su Numeric, neka su Alfa) koja su isto txtFields(x).
Želim samo u pojedinim Numeric poljima “natjerati” korisnika
da upiše brojčani iznos a ne slova, (kao što inače znaju: slovo O im je nula).

Uspio sam nekako riješiti sa priloženim kodom, (dosta “grub” kod), ali kako mi je ovo prvi program u VB-u,
a u njemu radim tek par mjeseci, bolje jednostavno ne znam.

Ako uspiješ složiti jednostavniji kod, OK, a ako ne stigneš opet OK, svejedno dugujem ti večeru i piće
(naravno i za “raju” sa foruma piće).

Znam, da vas “stare igrače” u svemu ovome, mi “novi” gnjavimo ali...

Btw: kako da izbacim zvuk, koji se javlja kada upišem broj i stisnem Enter.

Još jednom sorry i HVALA,

Evo kod:

Code:
Private Sub txtFields_KeyPress(Index As Integer, KeyAscii As Integer)
    
    Select Case Index
        Case 6
            If KeyAscii = 13 And Trim(txtFields(6).Text) <> "" Then
                txtFields(7).SetFocus
                    ElseIf Not (KeyAscii >= 48 And KeyAscii <= 57) Then
                        If KeyAscii <> 8 Then
                          KeyAscii = 0
                          MsgBox ("Morate unijeti brojeve"), vbInformation, App.ProductName
                        End If
            End If

        Case 7
            If KeyAscii = 13 And Trim(txtFields(7).Text) <> "" Then
                txtFields(14).SetFocus
                    ElseIf Not (KeyAscii >= 48 And KeyAscii <= 57) Then
                        If KeyAscii <> 8 Then
                          KeyAscii = 0
                          MsgBox ("Morate unijeti brojeve"), vbInformation, App.ProductName
                        End If
            End If

        Case 14
            If KeyAscii = 13 And Trim(txtFields(14).Text) <> "" Then
                txtFields(15).SetFocus
                    ElseIf Not (KeyAscii >= 48 And KeyAscii <= 57) Then
                        If KeyAscii <> 8 Then
                          KeyAscii = 0
                          MsgBox ("Morate unijeti brojeve"), vbInformation, App.ProductName
                        End If
            End If
...

    End Select
End Sub
 
Odgovor na temu

mladenovicz
Zeljko Mladenovic
Xoran Technologies, Inc., Ann Arbor, MI,
USA / Software Engineer
Ann Arbor, MI, USA

Član broj: 6598
Poruke: 2065
*.bg.wifi.vline.verat.net.

Jabber: mladenovicz@elitesecurity.org
ICQ: 95144142
Sajt: yubc.net/~mz


Profil

icon Re: Upis samo brojeva u TextBox kada je isti Name za sva polja 17.11.2004. u 09:52 - pre 237 meseci
Citat:
Pulapola:
Btw: kako da izbacim zvuk, koji se javlja kada upišem broj i stisnem Enter.


Pre poziva SetFocus metoda stavi KeyAscii = 0

Code:

Private Function m_HandleKeyPress(ByRef KeyAscii As Integer, Index As Integer, SetFocusIndex As Integer)
    If KeyAscii = 13 And Trim(txtFields(Index).Text) <> "" Then
        KeyAscii = 0
        txtFields(SetFocusIndex).SetFocus
    ElseIf Not (KeyAscii >= 48 And KeyAscii <= 57) Then
        If KeyAscii <> 8 Then
          KeyAscii = 0
          MsgBox "Morate unijeti brojeve", vbInformation, App.ProductName
        End If
    End If
End Function

Private Sub txtFields_KeyPress(Index As Integer, KeyAscii As Integer)
    Select Case Index
        Case 6
            Call m_HandleKeyPress(KeyAscii, Index, 7)
        Case 7
            Call m_HandleKeyPress(KeyAscii, Index, 14)
        Case 14
            Call m_HandleKeyPress(KeyAscii, Index, 15)
    End Select
End Sub

 
Odgovor na temu

Pulapola
Pula

Član broj: 28152
Poruke: 52
*.adsl.net.htnet.hr.



Profil

icon Re: Upis samo brojeva u TextBox kada je isti Name za sva polja 18.11.2004. u 14:33 - pre 237 meseci
Samo da se zahvalim,

Sve odlično radi...

mladenovicz i ostalima, puno hvala.

Pozdrav svima
 
Odgovor na temu

Pulapola
Pula

Član broj: 28152
Poruke: 52
*.adsl.net.t-com.hr.



Profil

icon Re: Upis samo brojeva u TextBox kada je isti Name za sva polja 07.01.2005. u 12:33 - pre 235 meseci
Pozdrav svima,

Pitanje: Kako da omogućim korisniku da može upisati
decimalni broj napr. 123,45

Ovo mi potrebno u Zeljkovom codu ispod:

Code:
Code:

Private Function m_HandleKeyPress(ByRef KeyAscii As Integer, Index As Integer, SetFocusIndex As Integer)
    If KeyAscii = 13 And Trim(txtFields(Index).Text) <> "" Then
        KeyAscii = 0
        txtFields(SetFocusIndex).SetFocus
    ElseIf Not (KeyAscii >= 48 And KeyAscii <= 57) Then
        If KeyAscii <> 8 Then
          KeyAscii = 0
          MsgBox "Morate unijeti brojeve", vbInformation, App.ProductName
        End If
    End If
End Function


Hvala i pozdrav
 
Odgovor na temu

[es] :: Visual Basic 6 :: Upis samo brojeva u TextBox kada je isti Name za sva polja

[ Pregleda: 2819 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.