Blaster2k Skrevet 29. mai 2004 Del Skrevet 29. mai 2004 (endret) hvordan kan jeg gjøre slik at om jeg trykker på en knapp så vil et tall som står i en tekstbox feks. deles på 2 også kommer svaret i en annen textbox? Endret 29. mai 2004 av Blaster2k Lenke til kommentar
Scix Skrevet 29. mai 2004 Del Skrevet 29. mai 2004 (endret) du kan gjøre slik Private Sub Command1_Click() Text2.Text = Text1.Text / 2 End Sub Edit: Får å sleppe error når det kommer bokstaver inn i text1, så kan du skrive koden slik Private Sub Command1_Click() Text2.Text = Val(Text1.Text) / 2 End Sub Endret 29. mai 2004 av Scix Lenke til kommentar
aadnk Skrevet 29. mai 2004 Del Skrevet 29. mai 2004 Noen ganger kan det være likegreit å fjerne muligheten å skrive bokstaver i tekstbokser. Dette kan man gjøre ved bruk av API-kallet SetWindowLong. For å gjøre dette legger du først til en modul i prosjeket ved å trykke på Project og så Add module. I denne legger du følgende kode: Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Const GWL_STYLE = (-16) Const ES_NUMBER = &H2000& Public Sub SetNumber(NumberText As TextBox, Flag As Boolean) Dim curstyle As Long, newstyle As Long curstyle = GetWindowLong(NumberText.hwnd, GWL_STYLE) If Flag Then curstyle = curstyle Or ES_NUMBER Else curstyle = curstyle And (Not ES_NUMBER) End If newstyle = SetWindowLong(NumberText.hwnd, GWL_STYLE, curstyle) NumberText.Refresh End Sub Så kan du gjøre hvilken som helst tekstboks i formene dine til bare numretiske. Her er et eksempel: Private Sub Form_Load() SetNumber Text1, True End Sub Etter dette vil det kun være mulig å skrive nummer i Text1. Lenke til kommentar
Blaster2k Skrevet 30. mai 2004 Forfatter Del Skrevet 30. mai 2004 (endret) Takker og bukker. Man kan ikke skrive komma når man bruker den modulen Hvordan kan jeg begrense antallet desimaler? Er det en måte å få teksten som står etter tekstboksene til å stå i flertall mo tallet er over 1? Endret 30. mai 2004 av Blaster2k Lenke til kommentar
aadnk Skrevet 30. mai 2004 Del Skrevet 30. mai 2004 (endret) Hvis du vil gjøre det mulig å skrive komma i tillegg til å begrense antall desimaltall må du legge følgende kode i modulen: Declare Function GetLocaleInfo Lib "kernel32" Alias "GetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String, ByVal cchData As Long) As Long Const LOCALE_SDECIMAL = &HE Const LOCALE_USER_DEFAULT = &H400 Public Function RemoveLetters(Text As String, MaxDecimal As Long) As String Dim Tell&, Tmp$, Letter$, Dec$, UsedDec&, CntDec& If Text = "" Then Exit Function Dec = GetInfo(LOCALE_SDECIMAL) For Tell = 1 To Len(Text) Letter = Mid(Text, Tell, 1) If IsNumeric(Letter) And (CntDec < MaxDecimal Or MaxDecimal < 0) Then Tmp = Tmp & Letter If UsedDec = 1 Then CntDec = CntDec + 1 End If If Letter = Dec And UsedDec = 0 Then Tmp = Tmp & Letter UsedDec = 1 End If Next RemoveLetters = Tmp End Function Public Function GetInfo(ByVal lInfo As Long) As String Dim Buffer As String, Ret As String Buffer = String$(256, 0) Ret = GetLocaleInfo(LOCALE_USER_DEFAULT, lInfo, Buffer, Len(Buffer)) If Ret > 0 Then GetInfo = Left$(Buffer, Ret - 1) End If End Function Hvis du nå vil at txtText tekstboksen skal ha begrensing i antall desimaltall og bruk av bokstaver skriver du inn denne koden i formen: Private Sub txtTest_Change() ' Tallet 4 er viser til hvor mangen desimaltall som kan skrives. Brukes -1 oppfattes ' det som ingen grense txtTest.Text = RemoveLetters(txtTest.Text, 4) End Sub For at teksten i en label skal være gramatisk korrekt, altså med flertall og entall, kan du legge denne koden inn i Change prosedyren etter RemoveLetter linjen: lblInfo.Caption = IIf(Val(txtTest.Text) = 1, "appelsin", "appelsiner") & " er tillgjengelig fra lageret." Endret 30. mai 2004 av aadnk Lenke til kommentar
Blaster2k Skrevet 30. mai 2004 Forfatter Del Skrevet 30. mai 2004 takker og bukker igjen Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå