Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - istanza di una form
Forum - Visual Basic 6 - istanza di una form

Avatar
carman (Normal User)
Newbie


Messaggi: 6
Iscritto: 02/08/2007

Segnala al moderatore
Postato alle 9:09
Giovedì, 02/08/2007
Salve,sto faticosamente realizzando un programmino in vb6 e da inesperto quale ancora sono mi trovo ad affrontare un problema che spero sia facilmente risolto da qualche anima pia:devo determinare se nella stessa applicazione che sta girando è in esecuzione un dato form o un dato numero di form.Ho notato che utilizzando l'istruzione Select Case e quindi form1.visible=false o true,a seconda,VB per testarlo va a verificare tutto il codice completo del form in questione,tra l'altro attivando in questo modo anche variabili e altro contenuti in questo form e quindi ritorna con il risultato "sì è visibile,no non è visibile" per poi continuare con l'esecuzione normale.Me ne sono accorto avviando il debug,dato che non capivo perchè mai veniva fuori un msgbox contenuto in quel form.Non c'è un modo per sapere se un form è attivo o no senza ricorrere all'interrogazione dei suoi attributi,tipo visible?Spero di non essere stato troppo prolisso... :-|

PM Quote
Avatar
c.ronaldo (Ex-Member)
Pro


Messaggi: 121
Iscritto: 05/07/2007

Segnala al moderatore
Postato alle 13:59
Giovedì, 02/08/2007
Non ho capito un gran che,ma sidirebbe che tu vuoi che non si apra due volte applicazione,e se è gia aperta,si kiuda l'ultima lanciata!

Codice sorgente - presumibilmente VB.NET

  1. Private Sub Form_Load()
  2. If App.PrevInstance = True Then
  3. MsgBox "Un altra applicazione è gia in esecuzione!", vbOKOnly + vbExclamation, "Attenzione"
  4. End
  5. End If
  6. End Sub



;);)

PM Quote
Avatar
carman (Normal User)
Newbie


Messaggi: 6
Iscritto: 02/08/2007

Segnala al moderatore
Postato alle 20:54
Giovedì, 02/08/2007
Anzitutto ti ringrazio per la risposta.No, non è esattamente questo di cui ho bisogno,l'istruzione app.previstance l'ho già inserita proprio per evitare   un'altra apertura DEL PROGRAMMA STESSO,quello che mi serve è sapere se durante l'esecuzione normale,in cui è aperto un form principale,viene aperto un altro form,ed eventualmente ancora un altro form.Si tratta di un menù a scomparsa;in pratica quando il mouse esce dal menù principale,il menù stesso deve scomparire,tranne nel caso in cui venga cliccato un pulsante che deve richiamare un secondo form accanto al primo con delle opzioni.Fin qui tutto ok,sfruttando select case.Ma si può presentare l'eventualità che il form con le opzioni debba essere richiamato anche cliccando su un secondo menù che viene fuori accanto al primo...:DIn pratica:quando oltre al primo menù vengono fuori gli altri,la scomparsa del primo non deve essere attivata.Questo è la porzione di codice che mi fa impazzire:
Select Case False
Case menu1.Visible = False, menu2.Visible = False, sel_cart.Visible = False, X >= 350
Case Else
Timer2_Timer
End Select

X è la coordinata del primo menù,oltre alla quale il menù stesso deve scomparire,tranne nei casi di presenza degli altri form.Il problema è che con questo tipo di istruzione,girata e rigirata in tutti i modi,vb6 per testare se i form sono o no visibili,fa girare tutto il codice contenuto in questi form!Non si limita solo ad appurare se sono visibili o meno!Ecco perchè,analogamente a app.previstance,vorrei sapere se esiste qualche funzione che fa a meno delle proprietà tipo visible ecc.   Pant,pant:d

PM Quote