Newsgroup: it.comp.lang.visual-basic
Titolo: #If #endif

qualcuno č cosě cortese da spiegarmi  che significato ha il prefisso
#, anche in generale, non limitatamente al caso in oggetto.
mi č capitato di punto in bianco un listato Web che in un modulo
ne fa uso.
grazie a tutti.
ramarro.

 wrote in message
wMGj5.29901$dF5.5...@news.infostrada.it...


 mi è capitato di punto in bianco un listato Web che in un modulo


 #If Mac Then
perchč, esiste un VB per mac?
conoscevo solo quello per windows...
--
ciao
- Xaero -
"Quando ero piccolo i miei genitori mi
 volevano cosě bene che nella culla mi
 misero un orsacchiotto vero"

 conoscevo solo quello per windows...
Esiste il VBA, che e` compreso in VB e in svariati
A(pplicativi). Alcuni di questi girano su Mac (es.: Office).
--
Ciao.
Maurizio
--------
?SPQR(C)
 X

Ma alla fine, a cosa serve?  Se sono switch per la compilazione
condizionale, il compilato ottenuto sara' comunque un eseguibile
che gira su UNA sola piattaforma, o comunque su una simile a
quella su cui e' stato compilato il programma.
Ovvero va bene se dai il sorgente a qualcuno e questo compila
sulla sua macchina per utilizzarlo in loco.
--
Frogman
indirizzo e-mail corretto: 
be...@reboot.to

sulla sua macchina per utilizzarlo in loco.
In effetti si usano pochissimo perņ, ad esempio fino a qualche anno fa
quando c'era VB sia 16 che 32 bit si usava frequentemente fare
#If Win32 then
    ' codice se vb16
#Else
    ' codice per vb32
#Endif
Questo perchč ad esempio le dichiarazioni api differivano a seconda della
versione di windows, o le stesse stringhe in win16 sono ansi mentre in win32
sono unicode e le conversioni.
Ora si potrebbe usare ad esempio per fare code sel genere
Const VBIs4 = True
#if VBIs4 then
    ' vb4 non supporta la tipizzazione dei parametri opzionali.
    Public Function Pippo(Optional param As Variant)
        if Ismissing(param) then Param = 0
#Else
    Public Function Pippo(Optional param As Integer = 0)
#End if
        ' some code
    End Function
oppure la puoi usare per non stare a commentare interi blocchi di codice che
devi ancora valutare se buttare o no:
#If False Then
    [... super blocco da non compilare... ]
#Endif
Ciao.

 wrote in message 8mpcln$na6$1...@nslave2.tin.it...


 Ovvero va bene se dai il sorgente a qualcuno e questo
compila sulla sua macchina per utilizzarlo in loco.
"Novità di Microsoft Visual Basic 4.0
Supporto a 32 bit e compilazione condizionale
La compilazione condizionale consente di incorporare segmenti
di codice specifici per la piattaforma in istruzioni
#If...Then...#Else e di creare selettivamente versioni a 16 e
a 32 bit dell'applicazione da una base di codice comune. La
versione a 32 bit di Visual Basic supporta nomi di file lunghi
in tutti i componenti del progetto e annulla la maggior parte
delle limitazioni di capacità di 64 KB per le proprietà e il
linguaggio Visual Basic."
E questo e` il motivo per cui e` stata introdotta la
compilazione condizionale. Scrivere codice multipiattaforma
che, a seconda della piattaforma su cui viene compilato,
*incorpora* o meno parti, o segmenti, di codice. Vuol dire che
se copili a 16 bit, tutto quello che hai scritto per i 32 bit
non verra` preso in considerazione, non generera` eventuali
errori di compilazione, e non risultera` nell'eseguibile.
Sara` come se tu, con santa pazienza, avessi "remmato"
(commentato) le istruzioni non valide per quella piattaforma.
Ne deriva un vantaggio molto interessante. Se vuoi fare piu`
edizioni di un applicativo, es.: demo, standard, avanzato,
puoi sfruttare la compilazione condizionale per gestire la
cosa. Lo stesso se vuoi personalizzare per piu` clienti.


già.... non ci avevo pensato...
ciao
Xaero
