/ 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
Kun ét komma i tekstbox
Fra : Jan Hansen


Dato : 17-04-01 09:33

Jeg har nogle tekstbokse hvor der indtastes nogle værdier til videre
beregning.

Men det er muligt at indtaste flere komma'er hvilket er ret uheldigt.
Hvordan klarer jeg den?

Mvh Jan Hansen



 
 
Helge Bjørkhaug (17-04-2001)
Kommentar
Fra : Helge Bjørkhaug


Dato : 17-04-01 10:03

"Jan Hansen" <jh@fa.dk> skrev i melding
news:QcTC6.53$Zd1.8819@news.get2net.dk...
> Jeg har nogle tekstbokse hvor der indtastes nogle værdier til videre
> beregning.
>
> Men det er muligt at indtaste flere komma'er hvilket er ret uheldigt.
> Hvordan klarer jeg den?

Something like this;
Private Sub Text1_KeyPress(KeyAscii As Integer)
If InStr(Text1.Text, Chr$(44)) And KeyAscii = 44 Then KeyAscii = 0
End Sub

--
Snutten



Jan Hansen (17-04-2001)
Kommentar
Fra : Jan Hansen


Dato : 17-04-01 11:02

Takker mange gange, det virker.

Mvh Jan Hansen

Helge Bjørkhaug <helge@techie.online.no> skrev i en
nyhedsmeddelelse:sFTC6.270$TAb.170970624@news.telia.no...
> "Jan Hansen" <jh@fa.dk> skrev i melding
> news:QcTC6.53$Zd1.8819@news.get2net.dk...
> > Jeg har nogle tekstbokse hvor der indtastes nogle værdier til videre
> > beregning.
> >
> > Men det er muligt at indtaste flere komma'er hvilket er ret uheldigt.
> > Hvordan klarer jeg den?
>
> Something like this;
> Private Sub Text1_KeyPress(KeyAscii As Integer)
> If InStr(Text1.Text, Chr$(44)) And KeyAscii = 44 Then KeyAscii = 0
> End Sub
>
> --
> Snutten
>
>



Tomas Christiansen (17-04-2001)
Kommentar
Fra : Tomas Christiansen


Dato : 17-04-01 12:33

Helge Bjørkhaug skrev:
> If InStr(Text1.Text, Chr$(44)) And KeyAscii = 44 Then KeyAscii = 0

Hvorfor ikke bare bruge:

If InStr(Text1.Text, ",") And KeyAscii = Asc(",") Then KeyAscii = 0

Så slipper man for at skulle have ASCII tabellen fremme hver gang man ser på
koden

-------
Tomas



Helge Bjørkhaug (17-04-2001)
Kommentar
Fra : Helge Bjørkhaug


Dato : 17-04-01 13:44

"Tomas Christiansen" <toc@blikroer.dk.removethis> skrev i melding
news:sRVC6.95$Zd1.18973@news.get2net.dk...
> Helge Bjørkhaug skrev:
> > If InStr(Text1.Text, Chr$(44)) And KeyAscii = 44 Then KeyAscii = 0
>
> Hvorfor ikke bare bruge:
>
> If InStr(Text1.Text, ",") And KeyAscii = Asc(",") Then KeyAscii = 0
>
> Så slipper man for at skulle have ASCII tabellen fremme hver gang man ser

> koden

Speechless......

--
Snutten



SandahlOlsen (22-04-2001)
Kommentar
Fra : SandahlOlsen


Dato : 22-04-01 23:38

-Fordi du anvende Asc-funktionen i stedet for at teste på KeyAscii-værdien
(44), som allerede har i hånden. Du laver altså performenceoverhead.

Hilsen Lars

"Tomas Christiansen" <toc@blikroer.dk.removethis> wrote in message
news:sRVC6.95$Zd1.18973@news.get2net.dk...
> Helge Bjørkhaug skrev:
> > If InStr(Text1.Text, Chr$(44)) And KeyAscii = 44 Then KeyAscii = 0
>
> Hvorfor ikke bare bruge:
>
> If InStr(Text1.Text, ",") And KeyAscii = Asc(",") Then KeyAscii = 0
>
> Så slipper man for at skulle have ASCII tabellen fremme hver gang man ser

> koden
>
> -------
> Tomas
>
>



Tomas Christiansen (23-04-2001)
Kommentar
Fra : Tomas Christiansen


Dato : 23-04-01 08:40

SandahlOlsen skrev:
> -Fordi du anvende Asc-funktionen i stedet for at teste på KeyAscii-værdien
> (44), som allerede har i hånden. Du laver altså performenceoverhead.

....og så?

Hvis man ikke er glad for performance overheads, bruger man OVERHOVEDET ikke
Visual Basic

Det er vigtigere at lave læselige programmer, end at undgå at introducere et
ekstremt minimalt performance overhead, som formentlig vil være næsten
umåleligt.

Men okay - her er en version specielt til dig:

Private Const ANSI_NUL As Byte = 0 ' NUL
Private Const ANSI_KOMMA As Byte = 44 ' ,

Private Sub Text1_KeyPress(KeyAscii As Integer)
If InStr(Text1.Text, ",") And KeyAscii = ANSI_KOMMA Then KeyAscii =
ANSI_NUL
End Sub

....og det er faktisk også sådan, at det bør gøres (altså bruge konstanter,
hvor funktioner kan undgås).

-------
Tomas



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408929
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste