Autore Topic: [RISOLTO]Variabile in comune a più form  (Letto 3981 volte)

Offline Mefrio

  • Grande Gambero
  • ***
  • Post: 203
    • Mostra profilo
[RISOLTO]Variabile in comune a più form
« il: 15 Novembre 2010, 17:33:41 »
Ragazzi avrei da chiedervi una cosa da chiedervi...

è possibile dichiarare una variabile che sia comune a più form? in caso la risposta fosse negativa, è almeno possibile utilizzare un evento di un form in un altro form, come ad esempio la pressione di un bottone?
« Ultima modifica: 15 Novembre 2010, 21:22:28 da Mefrio »
per quanto io sia messo male, voglio aiutare chi sta peggio di me :D

Offline perseo

  • Maestro Gambero
  • ****
  • Post: 264
    • Mostra profilo
Re: Variabile in comune a più form
« Risposta #1 il: 15 Novembre 2010, 17:55:23 »
Ragazzi avrei da chiedervi una cosa da chiedervi...

Secondo me, vuoi chiedere qualcosa...  :rotfl:

A parte gli scherzi,

Una variabile che può essere vista ovunque si definisce pubblica (globale)... e ti faccio un esempio.
Hai due form:
- Form1 --> con due bottoni, button1 e button2
- Form2 --> con un button1 ed un label1

Il codice di Form1 è questo:

Codice: vb.net [Seleziona]
Public sCognome As String

Public Sub Button1_Click()
  sCognome = "Pinco"
End

Public Sub Button1_Click()
  sCognome = "Pallino"
End



Mentre il codice di Form2 è questo:
Codice: vb.net [Seleziona]
Public Sub button1_Click()
  lblCognome.Text = Form1.sCognome ' --> ti restituirà il cognome del pulsante cliccato nell'altro form
End

« Ultima modifica: 15 Novembre 2010, 19:28:54 da perseo »

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Variabile in comune a più form
« Risposta #2 il: 15 Novembre 2010, 19:00:34 »
Le variabili globali, come detto sopra, possono essere dichiarate anche in un modulo volendo e le raggiungi con NomeModulo.NomeVariabile.

Tuttavia è possibile anche raggiungere direttamente gli oggetti di un form con NomeForm.NomeOggetto purchè nelle preferenze del progetto dichiari ciò.

Infine, e ti prego di non farmelo ripetere più, bisogna seeeeempre cercare nelle vecchie discussione prima e non dirmi che non c'è niente perchè è pieno zeppo di topic con questo argomento.

Offline Mefrio

  • Grande Gambero
  • ***
  • Post: 203
    • Mostra profilo
Re: Variabile in comune a più form
« Risposta #3 il: 15 Novembre 2010, 21:22:14 »
ok grazie ragazzi ho risolto grazie a perseo
per quanto io sia messo male, voglio aiutare chi sta peggio di me :D

Offline perseo

  • Maestro Gambero
  • ****
  • Post: 264
    • Mostra profilo
Re: [RISOLTO]Variabile in comune a più form
« Risposta #4 il: 16 Novembre 2010, 00:11:27 »
Mefrio... però non sottovalutare neppure il consiglio di Ceskho.  ;)

Scrivere le variabili in un modulo a parte è valido per almeno due motivi:

1) Se tu dichiari la variabile nel Form1 e poi in esecuzione lo chiudi... Se clicchi sul pulsante del Form2 il programma ti va in errore... perché quando chiudi un form in cui hai dichiarato una variabile pubblica, distruggi anch'essa.

2) Non hai più il problema di ricordarti dove l'avevi dichiarata (se hai tanti form), e comunque le hai sotto mano tutte.

Quando vuoi usare una variabile pubblica da modulo, basta creare il modulo... e dichiarare quella variabile nel suo codice. Ti consiglio per il modulo un nome corto tipo... "Mio" o anche solo "M"... Così quando vuoi richiamare una variabile in qualunque altro form, o modulo, o class puoi usare la dicitura: M.Cognome = "Pinco Pallino" oppure Label.Text = M.Cognome...

 ;)

PS. inoltre quando digiti "M." ti esce in automatico la lista di tutte le variabili (e le routine) che hai dichiarate in quel modulo... quindi è facile facile richiamarle.  ;)

Offline Mefrio

  • Grande Gambero
  • ***
  • Post: 203
    • Mostra profilo
Re: [RISOLTO]Variabile in comune a più form
« Risposta #5 il: 17 Novembre 2010, 15:47:00 »
in effetti, per quello che dovevo fare io, ciò usare una sola variabile comune, non mi conveniva usare un modulo
per quanto io sia messo male, voglio aiutare chi sta peggio di me :D

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: [RISOLTO]Variabile in comune a più form
« Risposta #6 il: 17 Novembre 2010, 16:28:15 »
Ricordo ancora l'esistenza della classe Application, che potrebbe essere molto utile in questi casi.

Vedo che quasi nessuno usa questa classe in modo specializzato...

La classe Application è una classe statica che gambas crea sempre e comunque per ogni applicazione, a meno di non specificarne una personalizzata.
Data la natura globale di questa classe (è STATIC), potrebbe essere facilmente implementata con variabili globali, utilizzate in tutto il progetto.