Autore Topic: Aprire un nuovo form caricando alcuni elementi di quello precedente  (Letto 685 volte)

Offline Gilby

  • Gamberetto
  • *
  • Post: 20
    • Mostra profilo
Salve ragazzi, vi espongo il mio problema, nel momento in cui clicco su un bottone chiudo il form attuale ed apro un nuovo form, vorrei che alcuni elementi di quello precedente venissero copiati con le stesse proprietà in quello nuovo, con "copy at the same place" copio solo l'oggetto con alcune caratteristiche, ad esempio l'orologio dovrei riscrivere la funzione, conoscete qualche metodo?

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.246
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Aprire un nuovo form caricando alcuni elementi di quello precedente
« Risposta #1 il: 20 Febbraio 2018, 16:47:26 »
... chiudo il form attuale ...

Devi partire dalla consapevolezza che chiudendo un Form (ma più in generale chiudendo un Oggetto) con la riga di comando
Codice: [Seleziona]
Me.Close()
tu deallochi (ossia liberi, rendi disponibile alla sovrascrittura da parte del sistema) tutte le risorse (cioè la porzione di memoria) precedentemente allocate per creare/istanziare quel Form.

Quindi, prima di chiuderlo tu devi.............
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gilby

  • Gamberetto
  • *
  • Post: 20
    • Mostra profilo
Re:Aprire un nuovo form caricando alcuni elementi di quello precedente
« Risposta #2 il: 20 Febbraio 2018, 17:45:08 »
Mi salvo l'indirizzo a cui punta?  :-\  :hatecomputer:  :hard: :hatecomputer: :hard:

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.246
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Aprire un nuovo form caricando alcuni elementi di quello precedente
« Risposta #3 il: 20 Febbraio 2018, 18:55:26 »
Ma quando avrai chiuso il Form, quell'indirizzo sarà divenuto inutile.

indirizzo_Form : dopo_chiusura_Form = recarsi_a_Hiroshima : dopo_il_6_agosto_1945   


Guarda infatti questo semplice esempio in ambiente grafico; sul Form va posto preliminarmente un Oggetto "Button".
Codice: [Seleziona]
Private butt As Button   ' Dichiariamo una variabile globale di tipo "Button"


Public Sub Form_Open()

  Button1.Background = Color.Red   ' Coloriamo il "Button", già presente sul Form, di rosso
 
  butt = Button1   ' Assegnamo l'indirizzo di "Button1" alla variabile globale "butt" di tipo "Button" (quindi ora "butt" punta a "Button1" !)
 
  Print Hex(butt.Background, 6)   ' Vediamo il valore identificativo esadecimale del colore dei Button

End


Public Sub Button1_Click()
   
  Button1.Delete   ' Distruggiamo l'Oggetto "Button1"

  Print butt   ' Andiamo a leggere il valore dell'indirizzo di memoria a cui faceva e fa riferimento la variabile "butt"
 
  Print butt.Background   ' Torniamo a leggere il valore identificativo del colore dei Button

End

....cosa succede quando premi il tasto posto sul Form ?   


« Ultima modifica: 20 Febbraio 2018, 20:49:43 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.136
  • Tonno verde
    • Mostra profilo
Re:Aprire un nuovo form caricando alcuni elementi di quello precedente
« Risposta #4 il: 20 Febbraio 2018, 19:55:58 »
Piccolo, piccolo indizio, come già detto da vuott, tu non puoi passare nulla dopo aver chiuso il tuo form pertanto o passi prima o fai finta di chiudere il form e passi dopo o usi un terzo incomodo o...

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.246
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Aprire un nuovo form caricando alcuni elementi di quello precedente
« Risposta #5 il: 20 Febbraio 2018, 20:12:10 »
Piccolo, piccolo indizio..............o passi prima o fai finta di chiudere il form e passi dopo o usi un terzo incomodo....

Praticamente gli hai detto tutto !      :rotfl:
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline allegfede

  • Gran Maestro dei Gamberi
  • *****
  • Post: 738
    • Mostra profilo
Re:Aprire un nuovo form caricando alcuni elementi di quello precedente
« Risposta #6 il: 09 Marzo 2018, 18:38:10 »
scusa la curiosita', ma perche lo devi chiudere il form precedente?
un esempio pratico per vedere se posso aiutarti a trovare un "walkaround"
se corri, morirai stanco (motto degli sniper)