/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
Valg af startfelt og check for bogstaver
Fra : Johnny


Dato : 03-01-03 08:36

Hej

Lige et par hurtige spørgsmål Visual Basic 6.0

1. Hvordan får jeg lavet sådan at man når man starter en frame kommer ind i
et bestemt tekstfelt sådan at dette er klar til indtastning.

2. Hvordan checker at et tekstfelt ikke indholder bogstaver feltet bruges
til udregninger har prøvet af definere feltet som et nummer felt. Det hjalp
ikke

Hilsen

Johnny



 
 
Krabsen (03-01-2003)
Kommentar
Fra : Krabsen


Dato : 03-01-03 10:02

1.

sub form load
tekstfelt1.setfocus
end sub

Noget i den retning - med forbehold for syntaksfejl

mvh
Krabsen



"Johnny" <noemail@nixingenemailadresse.dk> skrev i en meddelelse
news:3e153e82$0$149$edfadb0f@dread12.news.tele.dk...
> Hej
>
> Lige et par hurtige spørgsmål Visual Basic 6.0
>
> 1. Hvordan får jeg lavet sådan at man når man starter en frame kommer ind
i
> et bestemt tekstfelt sådan at dette er klar til indtastning.
>
> Hilsen
>
> Johnny
>
>



Martin Wiboe (03-01-2003)
Kommentar
Fra : Martin Wiboe


Dato : 03-01-03 10:07

Hej Johnny,

1. Sæt textfeltets "Tabindex-property" til 0. Dette felt bestemmer
rækkefølgen kontroller vælges i med Tab.
2. Altså, den er lidt værre... Hvad med følgende kode (simpelt eksempel):

<kode start>
Private Sub Text1_Change()
Dim CursorPos As Integer, N As Integer, ChecketBogstav As String
Dim NyText As String
CursorPos = Text1.SelStart 'Gem cursorens position.

For N = 1 To Len(Text1.Text) 'Tjek alle bogstaver
ChecketBogstav = Mid(Text1.Text, N, 1) 'Checketbogstav sættes til et bogstav
længere henne i teksten.
If Not IsNumeric(ChecketBogstav) Then ChecketBogstav = "" 'Hvis ikke
bogstavet er et nummer, sættes CB til ingenting.
NyText = NyText & ChecketBogstav 'CB tilføjes til den nye tekst.
Next 'Næste...

Text1.Text = NyText 'Sæt Text1 til den nye tekst.
If CursorPos > Len(Text1.Text) Then CursorPos = Len(Text1.Text) 'Hvis den
tidligere cursorposition var større end den nye længde, sættes den til det
maximale.
Text1.SelStart = CursorPos 'Placer cursoren.
End Sub
<kode slut>

Det skulle gøre det...

Hilsen Martin!
"Johnny" <noemail@nixingenemailadresse.dk> skrev i en meddelelse
news:3e153e82$0$149$edfadb0f@dread12.news.tele.dk...
> Hej
>
> Lige et par hurtige spørgsmål Visual Basic 6.0
>
> 1. Hvordan får jeg lavet sådan at man når man starter en frame kommer ind
i
> et bestemt tekstfelt sådan at dette er klar til indtastning.
>
> 2. Hvordan checker at et tekstfelt ikke indholder bogstaver feltet bruges
> til udregninger har prøvet af definere feltet som et nummer felt. Det
hjalp
> ikke
>
> Hilsen
>
> Johnny
>
>



Ove Hansen (03-01-2003)
Kommentar
Fra : Ove Hansen


Dato : 03-01-03 13:59


"Johnny" <noemail@nixingenemailadresse.dk> wrote in message
news:3e153e82$0$149$edfadb0f@dread12.news.tele.dk...

[...snip]
> 2. Hvordan checker at et tekstfelt ikke indholder bogstaver feltet
bruges
> til udregninger har prøvet af definere feltet som et nummer felt.
Det hjalp
> ikke
[snip...]

Private Sub Text1_KeyPress(KeyAscii As Integer)

If KeyAscii < 48 Or KeyAscii > 57 Then
KeyAscii = 0
MsgBox "Du skal skrive et tal mellem 0 og 9"
End If

End Sub

/Ove



Martin Wiboe (04-01-2003)
Kommentar
Fra : Martin Wiboe


Dato : 04-01-03 10:13

Hej Ove,

Det havde jeg slet ikke tænkt på Godt, at nogen kan finde bedre
løsninger!

Venlig hilsen,

Martin
"Ove Hansen" <prominent@prominentdata.dk> skrev i en meddelelse
news:3e15890e$0$214$edfadb0f@dread14.news.tele.dk...
>
> "Johnny" <noemail@nixingenemailadresse.dk> wrote in message
> news:3e153e82$0$149$edfadb0f@dread12.news.tele.dk...
>
> [...snip]
> > 2. Hvordan checker at et tekstfelt ikke indholder bogstaver feltet
> bruges
> > til udregninger har prøvet af definere feltet som et nummer felt.
> Det hjalp
> > ikke
> [snip...]
>
> Private Sub Text1_KeyPress(KeyAscii As Integer)
>
> If KeyAscii < 48 Or KeyAscii > 57 Then
> KeyAscii = 0
> MsgBox "Du skal skrive et tal mellem 0 og 9"
> End If
>
> End Sub
>
> /Ove
>
>



Arne Skriver (05-01-2003)
Kommentar
Fra : Arne Skriver


Dato : 05-01-03 12:57

"Johnny" <noemail@nixingenemailadresse.dk> skrev i en meddelelse
news:3e153e82$0$149$edfadb0f@dread12.news.tele.dk...

[klip]

> 2. Hvordan checker at et tekstfelt ikke indholder bogstaver feltet bruges
> til udregninger har prøvet af definere feltet som et nummer felt. Det
hjalp
> ikke

If not IsNumeric(Text1.Text) Then
MsgBox "Der må kun stå tal i tekstfeltet"
End If

Med venlig hilsen

Arne Skriver



Martin Wiboe (05-01-2003)
Kommentar
Fra : Martin Wiboe


Dato : 05-01-03 13:37

Sådan kunne man gøre det, men det forhindrer ikke indtastningen af bogstaver
løbende...
"Arne Skriver" <skriverkarlen@hotmail.com> skrev i en meddelelse
news:av96iq$3p$1@sunsite.dk...
> "Johnny" <noemail@nixingenemailadresse.dk> skrev i en meddelelse
> news:3e153e82$0$149$edfadb0f@dread12.news.tele.dk...
>
> [klip]
>
> > 2. Hvordan checker at et tekstfelt ikke indholder bogstaver feltet
bruges
> > til udregninger har prøvet af definere feltet som et nummer felt. Det
> hjalp
> > ikke
>
> If not IsNumeric(Text1.Text) Then
> MsgBox "Der må kun stå tal i tekstfeltet"
> End If
>
> Med venlig hilsen
>
> Arne Skriver
>
>



Betin@ (05-01-2003)
Kommentar
Fra : Betin@


Dato : 05-01-03 15:20

In article <av991o$nnh$1@sunsite.dk>, martin_wiboe[remove]@hotmail.com
says...
> Sådan kunne man gøre det, men det forhindrer ikke indtastningen af bogstaver
> løbende...
Smid det ind i Lostfocus på text1 og tilføj text1.setfocus sådan

> If not IsNumeric(Text1.Text) Then
> MsgBox "Der må kun stå tal i tekstfeltet"
text1.setfocus
> End If
Så vil man ikke komme ud af feltet sålænge det ikke er numerisk.
--
mvh
Betin@

Carsten Suurland (07-01-2003)
Kommentar
Fra : Carsten Suurland


Dato : 07-01-03 18:33

Hej NG

I VB er der et Validate event, som netop er beregnet til validering af
indtastede værdier.
Brug dette event i stedet for LostFocus og lign.

Eventet har også en Cancel parameter som kan sættes til True, hvis der ikke
er indtastet korrekte data.

Endeligt:
Hvis man ønsker at teste "real-time" (dvs. mens brugeren indtaster) skal der
også tages højde for "Delete", "Backspace", og piletasterne...

/Carsten Suurland



Ove Hansen (08-01-2003)
Kommentar
Fra : Ove Hansen


Dato : 08-01-03 08:47


"Carsten Suurland" <removethiscarsten@suurland.dk> wrote in message
news:avf32k$1qe8$1@news.cybercity.dk...
> Hej NG
>
> I VB er der et Validate event, som netop er beregnet til validering
af
> indtastede værdier.
> Brug dette event i stedet for LostFocus og lign.
>
> Eventet har også en Cancel parameter som kan sættes til True, hvis
der ikke
> er indtastet korrekte data.
[snip...]

Hvis man bruger Validate event kan man ikke komme ud af feltet uden at
indtaste en korrekt værdi. Det er ellers rart at kunne klikke på en
Annuller-knap for at lukke vinduet uden at være tvunget til at
indtaste en rigtig værdi. Derfor anbefaler jeg at anvende LostFocus.
Der er du ikke låst.
/Ove



Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408847
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste