Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    argomento non facoltativo

    premesso...che sono scarssisimo

    ho creato una dub per gestire le MSGBOX
    tutto ok, funzionava bene fin che non ho avuto bisogno di passare alla sub un'altro parametro perGioc
    che potrei non passare sempre
    come devo gestire il fatto che mi da l'errore "argomento non facoltativo" quando richiamo la sub senza passargli niente

    gli posso dire che l'argomento non è obbligatorio?
    di seguito vi posto anche il codice
    mille grazie

    Public Sub Message(text As String, title As String, other As Integer, perGioc As String)
    If perGioc = Null Then perGioc = GiocatoreCorrente

    If NumeroGiocatori <> 1 Then
    MsgBox CStr(perGioc) & "-" & text, other, title & Ordine(oldGiocatore) 'Ordine(GiocatoreCorrente)
    Else
    MsgBox text, other, title & NomeGiocatore1
    End If
    End Sub

  2. #2
    apparte utilizzare il tag per scrivere il codice...
    ...e specificare la versione di VB che si utilizza ?


    esiste la parolina magica OPTIONAL:
    codice:
    Public Sub Message(text As String, title As String, _
                       other As Integer, Optional perGioc As String) 
       If perGioc = Null Then perGioc = GiocatoreCorrente 
    
       If NumeroGiocatori <> 1 Then 
          MsgBox CStr(perGioc) & "-" & text, other, _
                title & Ordine(oldGiocatore) 'Ordine(GiocatoreCorrente) 
       Else 
          MsgBox text, other, title & NomeGiocatore1 
       End If 
    End Sub

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  3. #3

    Re: argomento non facoltativo

    Originariamente inviato da ciucciatiilcalzino
    premesso...che sono scarssisimo

    mille grazie ...va bene
    solo che ora dovrei verificare quando perGioc è vuoto

    avevo scritto prima

    If perGioc = null Then perGioc = GiocatoreCorrente

    ma mi dice tipo non corrispondente ...credo sicurametne che il rpblema sia qui
    CStr(perGioc)
    provo a fare
    if perGioc = ""
    ...ma non cambia nulla

  4. #4
    Utente di HTML.it L'avatar di vonkranz
    Registrato dal
    Sep 2001
    Messaggi
    1,387
    Originariamente inviato da ladyBlu
    esiste la parolina magica OPTIONAL:
    ...ehm...precisazione:

    OPTIONAL funziona solo con tipi di dato Variant

    e per testare se il parametro e' stato passato, devi usare IsMissing...quindi nel tuo caso

    codice:
    if IsMissing( perGioc ) then...
    ...in compenso il tag <CODE> nei post non e' un optional... :gren:
    ...and I miss you...like the deserts miss the rain...

  5. #5
    quando dichiari un parametro opzionale, mettici automaticamente anche il valore di default...
    codice:
    ......., Optional param1 as string=""....)
    if param1="" then
    ....
    by giuSp [.NetDeveloper]

    ___________
    un po' di VB non fa male!....?
    C# more power to you!!

  6. #6
    Originariamente inviato da giuSp
    quando dichiari un parametro opzionale, mettici automaticamente anche il valore di default...
    codice:
    ......., Optional param1 as string=""....)
    if param1="" then
    ....
    grazie per la correzione, mi ero dimenticata il valore di default

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  7. #7
    Utente di HTML.it L'avatar di vonkranz
    Registrato dal
    Sep 2001
    Messaggi
    1,387
    Originariamente inviato da ladyBlu
    grazie per la correzione, mi ero dimenticata il valore di default
    ...resta cmq un'utilizzo abbastanza improprio del parametro opzionale, anche perche' nulla vieta di testare un valore "nullo" per un parametro passato, rischiando di far fare alla procedura operazioni non corrette o che non dovrebbe fare in caso non venisse passato tale parametro.
    ...and I miss you...like the deserts miss the rain...

  8. #8
    Originariamente inviato da vonkranz
    OPTIONAL funziona solo con tipi di dato Variant
    da ke testo apocrifo hai tirato fuori questa cavolata...
    by giuSp [.NetDeveloper]

    ___________
    un po' di VB non fa male!....?
    C# more power to you!!

  9. #9
    Utente di HTML.it L'avatar di vonkranz
    Registrato dal
    Sep 2001
    Messaggi
    1,387
    Originariamente inviato da giuSp
    da ke testo apocrifo hai tirato fuori questa cavolata...
    ...a prescindere che non e' una cavolata e soprattutto che non sono tuo fratello e/o parente neanche alla lontana, questa cosa c'e' nell'help.

    Dal momento che i parametri OPTIONAL devono essere testati all'interno della funzione/sub con la funzione IsMissing (e non inizializzati ANCHE se non sono passati) e dal momente che questa funzione restituisce risultati anomali per altri formati di variabile (a causa della mancanza di 1 Bit) viene detto di passare tipi Variant
    ...and I miss you...like the deserts miss the rain...

  10. #10
    Originariamente inviato da vonkranz
    Dal momento che i parametri OPTIONAL devono essere testati all'interno della funzione/sub con la funzione IsMissing (e non inizializzati ANCHE se non sono passati) e dal momente che questa funzione restituisce risultati anomali per altri formati di variabile (a causa della mancanza di 1 Bit) viene detto di passare tipi Variant
    la storia ke isMissing funziona male in presenza di dati diverdi dal varian è vero...me il resto non è esatto...infatti è possibile passare valori opzionali di ogni tipo, basta però attribuirgli un valore di default...penso ke anche questo nell'HELP ci sia scritto...
    ...se nel tuo non c'è...guarda
    by giuSp [.NetDeveloper]

    ___________
    un po' di VB non fa male!....?
    C# more power to you!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.