Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Få "0,12" när man skriver ",12"

Postades av 2009-06-19 15:07:31 - Peter Andersson, i forum visual basic - allmänt, Tråden har 11 Kommentarer och lästs av 1317 personer

I en ruta för beräkning kan jag skriva ",12" som funkar i beräkningen, men bara för att det ska se bättre ut vill jag att man ser "0,12". Hur får jag dit nollan före kommat när jag t.ex. trycker Enter? (VB6)

/Peter


Svara

Sv: Få "0,12" när man skriver ",12"

Postades av 2009-06-19 15:43:27 - Thomas Roman

Så här kanske?

<code>
Sub Textbox1_OnKey
If KeyAscii = 13 Then
KeyAscii = 0
Textbox1.Text = CStr(CDbl(Textbox1.Text))
End If
End Sub
</code>

Det var länge sen jag använde VB6 så jag vet inte om allt heter exakt så där, men du borde förstå principen.


/Thomas


Svara

Sv:Få "0,12" när man skriver ",12"

Postades av 2009-06-19 15:58:03 - Peter Andersson

Så här ser min kod ut för "rutan" man skriver in ett värde och trycker Enter:



Private Sub txt1_KeyPress(KeyAscii As Integer)
  
    Select Case KeyAscii
   
    'Tillåt bara BackSpace,Enter,Komma,Minus,Punkt,siffror 0-9
    Case 8, 13, 44, 45, 46, 48 To 57
        'Alltid punkt som decimal avskiljare
        If KeyAscii = 44 Then KeyAscii = 46
        If KeyAscii = 13 Then
            KeyAscii = 0
              
            If Val(txt1.Text) > 0 And Val(txt2.Text) > 0 Then Call Varvtal
               
            If Val(txt1.Text) = 0 Then
                MsgBox "Du har inte skrivit in någon skärhastighet.", 48, "Hoppsan!"
                 
            Else
                txt2.SetFocus
                txt2.SelStart = 0
                txt2.SelLength = Len(txt2.Text)
            End If
            
        End If
    End Select
        
        
End Sub




Har provat att lägga in ditt
txt1.Text = CStr(CDbl(txt1.Text))


under
KeyAscii = 0


Blir fel men jag fattar inte vad...


Svara

Sv: Få "0,12" när man skriver ",12"

Postades av 2009-06-19 17:30:49 - Thomas Roman

Det borde vara rätt. Vad får du för fel?


/Thomas


Svara

Sv:Få "0,12" när man skriver ",12"

Postades av 2009-06-19 17:56:00 - Sven Åke Persson

Lägg in raden If Left$........... där jag visar härunder
<code>
Case 8, 13, 44, 45, 46, 48 To 57
'Alltid punkt som decimal avskiljare
If KeyAscii = 44 Then KeyAscii = 46
If KeyAscii = 13 Then
KeyAscii = 0
If Left$(txt1.Text, 1) = "." Then txt1.Text = "0" & txt1.Text 'Här
If Val(txt1.Text) > 0 And Val(txt2.Text) > 0 Then Call Varvtal
</code>


Svara

Sv: Få "0,12" när man skriver ",12"

Postades av 2009-06-19 18:10:31 - Sven Åke Persson

Du har KeyAscii = 0 på fel ställe. Som du har det kan man skriva bokstäver
Skall vara så här
<code>
Select Case KeyAscii
'Tillåt bara BackSpace,Enter,Komma,Minus,Punkt,siffror 0-9
Case 8, 13, 44, 45, 46, 48 To 57
'Alltid punkt som decimal avskiljare
If KeyAscii = 44 Then KeyAscii = 46
If KeyAscii = 13 Then
If Left$(txt1.Text, 1) = "." Then txt1.Text = "0" & txt1.Text
If Val(txt1.Text) > 0 And Val(txt2.Text) > 0 Then Call Varvtal

If Val(txt1.Text) = 0 Then
MsgBox "Du har inte skrivit in någon skärhastighet.", 48, "Hoppsan!"

Else
txt2.SetFocus
txt2.SelStart = 0
txt2.SelLength = Len(txt2.Text)
End If
End If
Case Else
KeyAscii = 0 'Här har jag ändrat
End Select
</code>


Svara

Sv:Få "0,12" när man skriver ",12"

Postades av 2009-06-20 00:52:42 - Thomas Roman

KeyAscii = 0 måste man väl ha vid enter (13), annars piper det väl?


/Thomas


Svara

Sv:Få "0,12" när man skriver ",12"

Postades av 2009-06-20 00:58:39 - Peter Andersson

Run-time error '13':
Type mismatch

sen blir raden: 'txt1.Text = CStr(CDbl(txt1.Text))' gulmarkerad.

Har du någon idé om felet Thomas för det är intressant att kunna göra så som du föreslår. Jag kör på SÅP:s lösning som funkar. Och så ska 'KeyAscii = 0' ligga i slutet som du påpekade Sven. Det piper inte hos mig. Kanon! 1000 tack till er båda /Peter


Svara

Sv: Få "0,12" när man skriver ",12"

Postades av 2009-06-20 02:38:08 - Sven Åke Persson

<b>Har du någon idé om felet Thomas för det är intressant att kunna göra så som du föreslår. </b>

Inte alls intressant. Kvalificerat "bullshit"
Thomas verkar inte förstå vad Select Case satsen gör. Gammal skåpmat.

Användaren skall bara kunna mata in siffror mm.
Sen kommer en "nisse" att skriva något om Klistra in. Så här blev min slutlösning.
<code>
Option Explicit
Private Sub Text1_KeyPress(KeyAscii As Integer)
'Normalt bör du tillåta dessa tecken tillsammans med siffror
'BackSpace, Tab, Enter, Komma, Minustecken, Punkt och 0 - 9
Select Case KeyAscii
Case 8, 9, 13, 44, 45, 46, 48 To 57
' Tillåt
'här byter du sida på 44 och 46 efter önskemål ,komma(,) punkt(.)
If KeyAscii = 44 Then KeyAscii = 46 ' Här byter jag ut komma till punkt
' så här bör det vara konsekvent
' If KeyAscii = 44 Then KeyAscii =46
Case Is = 22 'användaren klistrar in Ctrl+V
If IsNumeric(Clipboard.GetText) Then _
Text1.Text = Replace(Clipboard.GetText, ",", ".") 'byter komma till punkt vid Ctrl+V (Klistra in)
Clipboard.Clear
Case Else
KeyAscii = 0
End Select
End Sub
</code>
Tack för din Feedback Peter. Det värmer att någon läser och förstår.
Mest är det "nissar" som försöker knäppa gubben på näsan. ;-)


Svara

Sv: Få "0,12" när man skriver ",12"

Postades av 2009-06-20 02:58:14 - André Claesson

1.
Anledningen till att du får mismatch är att din sträng innehåller '.' vilket är lika illa som att ditt tal innehåller en bokstav. I svenskt system ska det vara ','

2.
CStr(CDbl()) returnerar inte den inledande nollan. Det fungerar tvärtom, har du en nolla där tas den bort.

3.
Man kan eventuellt använda Format för att få till det på liknande Tomas sätt.

Text1.Text = Format(Text1.Text, "0.00")

Men jag tror inte det blir riktigt som du vill ha det då. Då visas decimaler även på heltal. Och akta dig för att den avrundar talen om de innehåller fler siffror än formatet.

4. Kör på Sven Åkes lösningen om det funkar som du vill.


Svara

Sv:Få "0,12" när man skriver ",12"

Postades av 2009-06-20 05:55:23 - Sven Åke Persson

Skall det vara så djä... svårt att förstå !?

Text 040 123456 är text. 0,12 är matematik


Svara

Sv:Få "0,12" när man skriver ",12"

Postades av 2009-06-20 12:59:39 - Thomas Roman

<b>Thomas verkar inte förstå vad Select Case satsen gör. Gammal skåpmat.</b>

Förklara gärna hur jag har tänkt fel med Select Case. Eller ska du ha ett knäpp till på näsan? :-)


/Thomas


Svara

Nyligen

  • 17:03 Getmancar your go-to carsharing
  • 14:07 Games
  • 17:54 Vegastars New Zealand
  • 16:56 Verde Casino Danmark
  • 13:54 Vegastars: Top Australian Online C
  • 21:28 Chicken Road Casino Game
  • 21:21 1xBet Promo Code 2025
  • 18:37 Remove the bumper in AUDI

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 986
27 965
271 785
675
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies