Jag har ett litet problem. Du kan börja så här. Visa i en Label. PopUpen blir lurigare Ang punkt vs komma Det blir nog att sätta på tankemössan. Jaaaa ju mer man rotar i en skit ju mer luktar det. Gjorde detta enkla experiment för att få tillbaka Slider.Value Tack Du får lägga upp en liten Label i ena ändan på Slider1 Så här blir den slutliga lösningen på ditt problem Allting fungerade precis så som jag hade hoppats.Visual Basic 6 och konvertering
Jag har en slider som går från 0 till 100.
Detta skulle jag vilja ha som 0.00 till 1.00 i formatet Single.
Allt bara för att jag sedan ska stoppa in detta i en dll som kräver just detta formatet.
Det måste vara "punkt" och inte "komma" som ska vara skiljetecknet.
Går detta?
Går det även sedan att visa det nya formatet i popup-texten i slidern och inte det riktiga värdet?
Hoppas att någon kan hjälpa mig med lite kod om detta.Sv: Visual Basic 6 och konvertering
Sen kommer shit att Formatera till punkt på sliderV
Får kolla i mina gamla arkiv. Tror detta funkar skicka slideV till din DLL
Återkom om det strular så får Vi sätta på tänkarmössan. Kan bli snabbt och fel.
<code>
Option Explicit
Dim slideV As Single 'converterat värde du vill använda i project
Private Sub Slider1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
slideV = valueConv(Slider1.Value)
Label1.Caption = Replace(slideV, ",", ".") 'nu har du punkt visuellt
slideV = Val(CStr(slideV)) ' Till din hjälp Functionen Val(string) returnerar alltid " . " punkt
End Sub
Private Function valueConv(ByVal slide As Long) As Single
Dim sSlide As String
sSlide = Format$(slide / 100, "0.00")
slideV = CSng(sSlide)
valueConv = slideV
End Function
</code>Sv:Visual Basic 6 och konvertering
Fattar inte att Vi i hela världen inte kan acceptera " . " (punkt) som decimalavskiljare.
<b>Basta</b> så skall det vara, bara dom djä... grodätarna som trilskas.Sv:Visual Basic 6 och konvertering
slideV lämnar fel värde tillbaka. Om slider1 slutar med en 0:a så är slideV utan denna 0:a.
Label1 stämmer med att "," är utbytt med "." men i de fall sista siffran skall vara 0, så saknas denna.
Efter Val(Cstr... så blir slideV inget annat än en 0:a.
Kan du tänka en extra runda på problemet?
Tack på förhandSv: Visual Basic 6 och konvertering
Förbannade Punkt/Komma köret.Funktionen lämnar nu en String med " . " (punkt)
Omvandla till Double med Val(stringen) så borde din DLL köpa slideVal som input
<code>
Option Explicit
Dim slideVal As Double 'converterat värde du vill använda i project
Private Function valueConv(ByVal slide As Long) As String
Dim sSlide As String
sSlide = Format$(slide / 100, "0.00")
sSlide = Replace(sSlide, ",", ".")
valueConv = sSlide
End Function
Private Sub Slider1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
Label1.Caption = valueConv(Slider1.Value)
'Denna slideVal borde funka i din DLL
slideVal = Val(valueConv(Slider1.Value))
End Sub
</code>
Återkom gärna med FeedBack
<b>Tips</b>
Du kan testa värdet på slideVal genom att använda det i en ekvation
och kolla om du får rätt svar.Sv:Visual Basic 6 och konvertering
Nu verkar det stämma som du vill ha det.
<code>
Private Sub Command1_Click()
MsgBox slideVal * 100
End Sub
</code>Sv: Visual Basic 6 och konvertering
Det ser ut som om det fungerar.
Jag har lite fler tester att göra, men första testen gick bra.
Nu en sista liten fråga om Slidern.
Slidern visar det nummer som den är inställd på enligt min och max-värdet.
Om jag nu räknar om detta värde. Exempel som ovan.
Kan jag då visa detta värde istället på något vis??Sv:Visual Basic 6 och konvertering
Det är nog smartare att ha koden i MouseMove.
Använde MouseUp för att ha koll på vad som hände
<code>
Label1.Caption = valueConv(Slider1.Value)
</code>Sv: Visual Basic 6 och konvertering
En Label1 o en Command1 + Slider1
<code>
Option Explicit
Dim slideVal As Double 'converterat värde du vill använda i project
Private Sub Command1_Click()
MsgBox slideVal * 100 'Testar att slideVal är korrekt
End Sub
Private Sub Slider1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
Label1.Caption = valueConv(Slider1.Value)
'Denna slideVal borde funka i din DLL
slideVal = Val(valueConv(Slider1.Value))
End Sub
Private Function valueConv(ByVal slide As Long) As String
Dim sSlide As String
sSlide = Format$(slide / 100, "0.00")
sSlide = Replace(sSlide, ",", ".")
valueConv = sSlide
End Function
</code>Sv:Visual Basic 6 och konvertering
Jag tackar för all hjälp jag har fått.