Newsgroup: it.comp.lang.visual-basic
Titolo: [?] compilato o VB ide?

Ciao a tutti,
Esiste il modo do sapere se si č in compilato o in esecuzione all'interno di
VB?
A parte il solito Debug.Print 1 / 0, ovviamente :)
Ciao

Zanna wrote:

puoi mettere una stringa che viene passata come paramertro al programma.
se compili vb la scarta

 in esecuzione all'interno di VB?
App.ExeName in debug ritorna il nome del progetto e in compilato il nome
dell'exe.
Devi ovviamente dare al progetto un nome diverso da quello dell'exe.
Ciao.
pinco_pallo
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 VB?
Io usa questa:
Declare Function GetModuleFileName Lib "kernel32" Alias 
"GetModuleFileNameA" (ByVal hModule As Long, ByVal lpFileName As String, 
ByVal nSize As Long) As Long
Public Function IsDevelopMode() As Boolean
   Dim strFileName As String
   Dim lngCount As Long
 
   strFileName = String(255, 0)
   lngCount = GetModuleFileName(App.hInstance, strFileName, 255)
   strFileName = Left(strFileName, lngCount)
 
   If UCase(Right(strFileName, 7)) = "VB6.EXE" Then
       IsDevelopMode = True
   Else
       IsDevelopMode = False
   End If
End Function
-- 
Ciao, Mauro CB.

 Ciao
io uso questa
http://www.mvps.org/vbnet/index.html?code/core/isinide.htm


 VB?
Non lo so, a parte quello che hai già escluso.
Non voglio farti perdere tempo, ma, per favore, mi fai un esempio di
quando/come/perchè possa servire?
Grazie.

 quando/come/perchè possa servire?
Ad esempio, nella generazione/gestione in runtime dei menu, la struttura 
del Type da utilizzare in .EXE e` differente da quella da utlizzare in 
IDE.
-- 
Ciao, Mauro CB.

 quando/come/perchè possa servire?
Perchè mi sono fatto una classe che gestisce gli errori e mostra un form
modale per il messaggio d'errore e i bottoni di scelta da intraprendere.
il metodo che gestisce l'errore mi ritorna un valore che indica ok, riprova
o debug.
Nell'ultimo caso faccio
Select case cErrori.Handle(Err)
Case erOk...
Case erRetry : Resume
Case erDebug : Stop : Resume
Ti chiederai il perchè di quest'ultima: perchè la classe sta in una dll e
può essere richiamata dal mio exe o da altre dll.
Finchè sono tutto in compilato o tutto in debug non ci sono problemi ma
metti che ho questa situazione:
exe (ide VB) --> dll (compilata)
dll va in errore, l'errore viede gestito, ma io non so che sono in compilato
(in questo stadio! perchè l'exe non lo è!) ma facendomi lo Stop mi distrugge
la classe (se fosse stato in ide si limitava a fermarsi lì).
Così, se in questo esempio dll va in errore, il mio messaggio non sa se
apparire con anche il tasto "debug" o no, e se questo appare e viene premuto
va tutto in crash.
Per ora ho risolto sostituendo Stop con Debug.Assert False, ma non mi piace
molto, quindi volevo sapere se era possibile sapere con qualcosa di già
pronto (per non dover aggiungere moduli/proprietà a tutti i progetti) se
sono in IDE o no.
Chiaro? :P
Ciao

 modale per il messaggio d'errore e i bottoni di scelta da intraprendere.
...
Olaaaa, chiarissimo e troppa grazia. ;-)

 IDE.
Questa non l'ho capita, ma ... grazie lo stesso.

 sono in IDE o no.
Secondo me, allora, hai gia' scelto la soluzione migliore con
Debug.Assert... fa quello che chiedi e non ha assolutamente nessun impatto
sul programma; tutte le altre soluzioni proposte, in un modo o nell'altro,
ti richiedono di creare e invocare una routine aggiuntiva che, seppur in
minima misura, influisce anche sulla versione "release" del programma
Ciao
--
Luca Dormio - 
luca....@tin.it
________________________________
"Marty, non stai ragionando in maniera quadridimensionale"
Dr. Emmett L. Brown

 Questa non l'ho capita, ma ... grazie lo stesso.
Scusa, mi sono spiegato con i piedi.
Per la gestione dinamica dei menu in runtime, ho preso spunto da 
questo esempio presente nel sito comune: 
http://www.it-lang-vb.net/download.asp?file=Archivio/Sorgenti/crtmenu.zip&ID=406
Se avrai la pazienza di andare a guardare il codice noterai che un
oggetto di tipo "VB.Menu" ha una struttura diversa a secondo che si
sia in IDE o in EXE.
-- 
Ciao, Mauro CB.