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


Anropa funktion

Postades av 2002-02-13 07:37:53 - Martin Andersson, i forum visual basic - allmänt, Tråden har 13 Kommentarer och lästs av 575 personer

Hej!

Jag håller på att lära mej Visual Basic.

Programmet består av ett formulär med fyra textrutor, en knapp och två etiketter. Det går ut på att man skriver in tal i tre av textrutorna och när man fyller i den fjärde så ska funktionen kolla om talet i den fjärde rutan var med i någon av de andra tre.

Funktionen ser ut så här:

Public Function sök3(t1 As Integer, t2 As Integer, t3 As Integer, sökt As Integer) As Boolean

If sökt = t1 Then
sök3 = True
Exit Function

ElseIf sökt = t2 Then
sök3 = True
Exit Function

ElseIf sökt = t3 Then
sök3 = True
Exit Function

Else
sök3 = False
End If
End Function

End Function

Problemet kommer när jag ska anropa funktionen:
Har provat på flera sätt b la med:

Private Sub Command1_Click()
Dim t1 As Integer
Dim t2 As Integer
Dim t3 As Integer
Dim sökta As Integer

t1 = Text1.Text
t2 = Text2.Text
t3 = Text3.Text

sökta = sök3(t1,t2,t3) Här kommer felmeddelandet: Argument not optional
Kod att utföra
End Sub

Är det någon som vet hur jag ska anropa funktionen?

Ska även skapa en funktion son retunerar största värdet, vore jätte taksam för hjälp.

mvh Martin


Svara

Sv: Anropa funktion

Postades av 2002-02-13 08:44:21 - Johan Bovin

Du har ju tre inparametrar anropet men funktionen har ju fyra...

/johan


Svara

Sv: Anropa funktion

Postades av 2002-02-13 09:03:52 - Sven Åke Persson

Hej
Ett fel till du har deklarerat sökta som Integer men
Funktionen lämnar Boolean.Kanske funkar men bör vara samma.

mvh
Sven


Svara

Sv: Anropa funktion

Postades av 2002-02-13 09:22:31 - Emma Magnusson

<code>
Om du vill anropa din funktion på det sättet som du gör, får metod-
huvudet se ut så här istället:

Public Function sök3(t1 As Integer, t2 As Integer, t3 As Integer) As Boolean


/emma
</code>


Svara

Sv: Anropa funktion

Postades av 2002-02-13 10:00:28 - Andreas Hillqvist

<code>
Public Function sök3(ByVal t1 As Long, ByVal t2 As Long, ByVal t3 As Long, ByVal sökt As Long) As Boolean
If sökt = t1 Then
sök3 = True
ElseIf sökt = t2 Then
sök3 = True
ElseIf sökt = t3 Then
sök3 = True
End If
End Function

Private Sub Command1_Click()
If sök3(Text1.Text, Text2.Text, Text3.Text, Text4.Text) Then
'Kod att utföra
Else
Msgbox "Värdet finns ej i textruterna"
End If
End Sub
</code>


Svara

Sv: Anropa funktion

Postades av 2002-02-13 19:29:09 - Peter Holm

varför deklarerar du ByVal. Jag trodde du var en optimeringssnubbe A.Hillqvist.


Genom att använda byVal måste datorn kopiera värdet du skickar som inparameter. Detta tar tid.

OK för att man måste vara försiktig så man inte råkar ändra externa variabler i lokala funktioner.

Men vad gör man inte för att optimera mera ???

/[peter.h]


Svara

Sv: Anropa funktion

Postades av 2002-02-13 20:26:05 - Andreas Hillqvist

PRova att ta bort byval. Kommer du inte kunna skriva på samma sät. Genom att skriva ByVal kan jag skicka strängar som argument. VB konverterar värdena automatiskt.


Svara

Sv: Anropa funktion

Postades av 2002-02-14 10:16:11 - Martin Andersson


Tack för hjälpen!

Men jag har fortfarande ett problem, när jag matar in ett tal ett tal i text4, blir alltid värdet falskt även om talet finns med i någon av de textrutor som finns med i funktionen.

Private Sub Command1_Click()
Dim t1 As Integer
Dim t2 As Integer
Dim t3 As Integer
Dim t4 As Integer
Dim sökta As Boolean

t1 = Text1.Text
t2 = Text2.Text
t3 = Text3.Text
t4 = Text4.Text
Text4.Text = t4


If t4 = sök3(t1, t2, t3) Then
MsgBox "Talet finns", , "TEST"
Else
MsgBox "Talet finns INTE", , "TEST"

End If
End Sub

Public Function sök3(t1 As Integer, t2 As Integer, t3) As Boolean
Dim sökt As Boolean

If sökt = t1 Then
sök3 = True
Exit Function

ElseIf sökt = t2 Then
sök3 = True
Exit Function

ElseIf sökt = t3 Then
sök3 = True
Exit Function

Else
sök3 = False
End If
sökt = sök3
End Function

mvh Martin


Svara

Sv: Anropa funktion

Postades av 2002-02-14 11:24:49 - Johan Bovin

kolla på dessa rader.

Text4.Text = t4


If t4 = sök3(t1, t2, t3) Then

Om du matar in t.ex 3 i text4 blit t4=3

säg att din funktion nu returnerar true (ett sökt värde fanns)
då kollar du om 3=True och 3 är inte lika med True för 3=3 och därför returneras false (3=True)=False och (3=3)=True




If t4 = sök3(t1, t2, t3) Then

borde alltså bytas mot If sök3(t1, t2, t3) then

Vad vill du att t4 skall göra? Och text4?

/Johan


Svara

Sv: Anropa funktion

Postades av 2002-02-14 13:08:01 - Martin Andersson

Jag ska skriva in olika värde i t1,t2 och t3 sedan ett värde i text4.text om samma värde finns i någon av t1,t2 och t3 så ska ett meddelande om att talet finns med komma upp.

Om talet som jag skriver in i text4.text inte finns i någon av textrutorna t1,t2 och t3 vill jag ha ett meddelande om att talet inte finns.



/Martin


Svara

Sv: Anropa funktion

Postades av 2002-02-14 13:24:35 - Johan Bovin

Private Sub Command1_Click()
Dim t1 As Integer
Dim t2 As Integer
Dim t3 As Integer
Dim t4 As Integer


t1 = Text1.Text
t2 = Text2.Text
t3 = Text3.Text
t4 = Text4.Text



If sök3(t1, t2, t3, t4) Then
MsgBox "Talet " & t4 & " finns", , "TEST"
Else
MsgBox "Talet " & t4 & " finns INTE", , "TEST"

End If
End Sub

Public Function sök3(t1 As Integer, t2 As Integer, t3 as integer, sökt as integer) As boolean


If sökt = t1 Then
sök3 = True
Exit Function

ElseIf sökt = t2 Then
sök3 = True
Exit Function

ElseIf sökt = t3 Then
sök3 = True
Exit Function

Else
sök3 = False
End If

End Function

så här eller?

/Johan


Svara

Sv: Anropa funktion

Postades av 2002-02-16 08:10:51 - Martin Andersson

Japp, det var precis så jag menade.

/Martin


Svara

Nyligen

  • 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
  • 15:35 Chicken road crash game
  • 21:41 Automotive Services UK

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 940
27 965
271 783
1 127
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