Autor Thema: Type mismatch on external Function  (Gelesen 1871 mal)

Offline Jürgen Gerhold

  • Frischling
  • *
  • Beiträge: 1
Type mismatch on external Function
« am: 28.03.05 - 10:42:55 »
Ich habe eine eigene Script-Bibliothek angelegt und dort eigene Functionen erstellt.  Nun habe ich folgendes Problem:

Wenn ich die Function wie folgt declariere kann ich sie ohne Fehlermeldung aufrufen.

Function Ostern (Jahr As Integer) as Integer
Dim a,b,c,d,e,f,g,h As Integer
.....
    Ostern = i + j+22

Ändere ich die Function wiefolgt ab, bekomme ich eine Fehlermeldung beim Aufruf der Function.

Type mismatch on external Name : Ostern

Function Ostern (Jahr As Integer) as String
Dim a,b,c,d,e,f,g,h As Integer
.....
    Ostern = Str(i + j+22)


Ich kann mir nicht klären worum.


Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re: Type mismatch on external Function
« Antwort #1 am: 28.03.05 - 11:00:13 »
hmm, habe dein Codefragment sowohl unter R5 als auch unter R6 getestet und erhalte keine Fehlermeldung.

Ist evtl die Variable, die den Wert von "Ostern" aufnimmt noch als integer deklariert ?
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Type mismatch on external Function
« Antwort #2 am: 28.03.05 - 11:07:50 »
Dim a,b,c,d,e,f,g,h As Integer

Hat jetzt wohl nichts mit der Fehlermeldung zu tun, aber damit deklarierst Du nur h als Integer. a,b,c,d,e,f,g sind so als Variant deklariert.

Besser:
Dim a As Integer,b As Integer,c As Integer,d As Integer,e As Integer,f As Integer,g As Integer, h As Integer

Und ja, ich vermute auch, dass die Variable "Ostern" nicht als String deklariert wurde.
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re: Type mismatch on external Function
« Antwort #3 am: 28.03.05 - 11:19:34 »
seltsam, selbst mit diesem CodeHorror kann ich keine FM erzeugen

Sub Click(Source As Button)
   Dim retval As Integer
   retval = Ostern("1999")
   Msgbox retval
End Sub

Function Ostern (Jahr As Integer) As String
   'Dim i,j As Integer
   
   Ostern = Str(i + j+22)
   
End Function
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re: Type mismatch on external Function
« Antwort #4 am: 28.03.05 - 11:21:15 »
Die Fehlermeldung kommt immer dann, wenn du die Signatur einer Funktion änderst und die Funktionsaufrufe nicht anpasst. Nach dem Ändern der Signatur einer Funktion musst du alles Script, das die Funktion verwendet neu kompilieren. In R5 manuell (oder automatisch mit Klimmzügen) in Notes 6 automatisch mit der Funktionalität des Designers.
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re: Type mismatch on external Function
« Antwort #5 am: 28.03.05 - 11:24:04 »
seltsam, selbst mit diesem CodeHorror kann ich keine FM erzeugen

Sub Click(Source As Button)
   Dim retval As Integer
   retval = Ostern("1999")
   Msgbox retval
End Sub

Function Ostern (Jahr As Integer) As String
   'Dim i,j As Integer
   
   Ostern = Str(i + j+22)
   
End Function

hehe. Code-Horror find ich gut.
Das liegt wohl daran, dass LotusScript da (und nicht nur da) eine automatische Typenumwandlung macht
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz