Newsgroup: it.comp.lang.visual-basic
Titolo: Incompresione o ignoranza

Mi sono trovato di fronte a questa cosa
ma non sono riuscito a trovare da nessuna parte
cosa vuol dire.
#if condizione = true then
e il blocco enf if era preceduto nuovamente dal #
Ora ... assegnato al nome di una variabile vuol dire
che la variabile č di tipo double ... su una condizione if che vuol dire?
Grazie Andrea

 e il blocco enf if era preceduto nuovamente dal #
Ma sai che non sapevo esistesse in Vb?
Credevo fosse proprio solo del C e dei linguaggi derivati (tipo Clipper per
intenderci)
Si tratta di una condizione di compilazione, ovvero, #if la condizione è
vera, verrà compilato un certo blocco di codice, #else un altro...
ciao
ugo

 > cosa vuol dire.
p.s.
tanto per togliermi uno sfizio: ho scritto #if nell'indice di msdn e,
miracolo, ho trovato l'help relativo...
per caso la mia copia di msdn ha un indice diverso da quello di tutte le
altre?
:-)) ?
ciao
ugo

 :-)) ?
Anche il mio msdn ha l'help su #if :-)
--
Ciao Marco S.
http://digilander.iol.it/santimarco

 Anche il mio msdn ha l'help su #if :-)
Certo perché esiste la "direttiva" #if es:
' If Mac evaluates as true, do the statements following the #If.
#If Mac Then
 '. Place exclusively Mac  statements here.
 '.
 '.
' Otherwise, if it is a 32-bit Windows program, do this:
#ElseIf Win32 Then
 '. Place exclusively 32-bit Windows statements here.
 '.
 '.
' Otherwise, if it is neither, do this:
#Else
 '. Place other platform statements here.
 '.
 '.
#End If
Ciao
--
Timothy Redaelli
timothy.redae...@email.it
------------------------------------------------------------------
Togliere NONSPAMMARE per rispondere

 Grazie Andrea
Il costrutto #IF ..... THEN ...#ELSE ....#ENDIF e' un'istruzione di
precompilazione. In pratica, esistono delle variabili particolari che
consentono di definire dei 'percorsi' alternativi a RunTime.
Si capisce meglio con un esempio, anche se un po' datato (a quando i
programmatori VB dovevano far girare i programmi su Win31 e su Win95)
#IF Win32 Then
  Declare function Pippo lib "kernel32.dll" (.....ByVal lPluto as Long)
#ELSE
  Declare function Pippo lib "kernel.dll" (.....ByVal iPluto as Integer)
#ENDIF
In questo caso il programma s, a RunTime, che se gira sotto Win31 deve usare
la seconda dichiarazione, altrimenti la prima.
Bye by Massimo 8-]

No č che ero in treno e non avevo sotto mano l'msdn installato, ma solo un
portatile con connessione stralenta e precaria; e cercando sull'msdn on line
... dopo averci messo una vita a caricare la prima pagina ... ho preferito
chiedere help a voi piuttosto che spendere altri dollaroni in telefonata
;)))
Grazie comunque.


Errore, il programma lo sa solo a COMPILE time, ovvero una volta che crei
l'eseguibile quel programma usera' SOLO una delle due dichiarazioni, secondo
se la costante Win32 (che e' propria del COMPILATORE) fosse vera o falsa nel
momento in cui il programma e' stato compilato.
Ciaotutti,
Asterix

 programmatori VB dovevano far girare i programmi su Win31 e su Win95)
Mi sono accorto di aver saltato un pezzo importante:
#If Win32
non serviva a far girare lo stesso programma su win31 e win95, per ottenere
questo bastava creare la versione win31 e fidare nella compatibilita', lo
scopo era creare DUE diverse versioni del programma a seconda che l'IDE
fosse quella a 16 o a 32 bit.
Oggi queste istruzioni sono usate spesso come segue:
#Const XDEBUG As Boolean = True
' Spesso sostituita da una XDEBUG=1 negli argomenti di compilazione
condizionale
#If XDEBUG Then
    MsgBox "DEBUG: la variabile pippo in questo momento vale " & pippo
#End If ' XDEBUG
Utili per verificare alcuni comportamenti del programma compilato in
runtime.
Una volta stabilito che il programma fa quello che deve fare, si mette a
False la variabile e il programma viene ricompilato nella versione release.
Altri casi sono diverse versioni del programma
#Const ShareWare As Boolean = True
#If ShareWare Then
    ' Codice (normalmente 'castrato') per la versione SW
#Else ' ShareWare
    ' Codice per la versione Retail (a pagamento)
#End If ' ShareWare / Else
In VB questo uso e' bene o male l'unico utile, in C e' uso fare
#ifdef WIN32
    // il programma girera' SOLO sotto Win32 e compatibili
#endif
#ifdef SOLARIS
    // non mi ricordo se la #define per solaris fosse questa
    // cmq la versione per Solaris del codice starebbe qui
#endif
#ifdef MAC
    // E la versione Mac dello stesso codice qui...
#endif
Questo in VB non viene utilizzato, dato che VB gira sotto un'unica
piattaforma, ma per i programmatori C e' una manna (infatti io ho a casina
un programma di cui ho fatto il porting da Linux a Win32, e mi sono messo le
mie brave #ifdef nei punti in cui aggiungevo codice platform-dependant, in
modo che riportando il programma nelle mani di un gcc qualsiasi il risultato
funzioni cmq sotto Linux).
Per la cronaca, gli switch li da' cmq il programmatore, solo che VC supporta
la gestione dei profili di compilazione, che per default sono Debug eRelease
ma possono essere ampliati a piacere, in VB invece bisogna modificarsi a
mano ogni volta i valori di tutte le costanti interessate.
Ciaotutti,
Asterix

 fosse quella a 16 o a 32 bit.
infatti direi che fosse di vb4 16 e 32.
da vb5 in poi, sulle 16 bit -> x.
sulle 32 -> metterei regolarmente 2, ponendo che si giochi in casa.

 No è che ero in treno e non avevo sotto mano l'msdn installato, ma solo un

mmm, giustificato.
:-)
ciao
ugo

F1, premi quel DANNATO tasto F1!
Propongo un nuovo tag:
PTFK
Press The Fucking Key
:->
hal


[...]

 Alfonso
Assert va bene solo quando devi validare una condizione, se hai una funzione
che riceve unostatogiusto al momento sbagliatoassert non ti serve a molto...
Dovresti usare un'ALTRA variabile globale per indicare quali sono gli stati
validi al momento... E non mi pare il caso :-P=
Ciaotutti,
Asterix

 ha scritto
roal:

un pulsante di una sex machine ?


arf arf, dov' e' ?
arf arf
ciao, harf