|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: May 2001
Città: Triggiano
Messaggi: 4459
|
Delucidazioni in Visual Basic
Ciao ragazzi, eccomi ancora qui con un sacco di curiosità
Arrivo subito al sodo. Nel mio programma ho 2 form: il primo gestisce il programma vero e proprio mentre l'altro gestisce le opzioni (path di alcuni programmi ecc..) Problema 1: Ho bisogno di leggere una determinata variabile presente nel form delle opzioni, nel form principale. Come faccio? (credo dovrei fare una sorta di condivisione) Problema 2: Utilizzo la funzione Sleep per mettere in attesa il programmino, ma mi tiene occupata la cpu al 100% finchè non termina l'esecuzione (la quale può durare anche 5 o 10 minuti). Come faccio ad evitare questo? Grazie a tutti
__________________
Asrock AB350M Pro 4 - AMD Ryzen 7 5800x - 2x8GB Ram Corsair Vengeance LPX DDR4 3000 Mhz CL15 - MSI GeForce GTX 1070 Aero ITX 8GB - Sabrent 512GB Rocket NVMe PCIe M.2 2280 - Samsung 850 EVO 250GB Sata3 - Samsung 27" C27JG5x QHD 144 Hz |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Leggere le varibili da form ad un altro nn si può!!
Come mai ti serve proprio una varibile? Di solito una volta che il form opzioni si chiude nn dovresti più servirtene, altrimenti il programma è fatto male! Per salvare le tue opzioni potresti usare un file ini, se ti interessa ti dico come si fa! Se proprio devi utilizzare quella variabile, allora la devi dichiarare dentro un modulo in questa maniera: Public nome_var as tipo , così questa variabile sarà vista dall'inizio alla fine del tuo programma. Se mi spieghi meglio perchè ti serve la variabile, magari troviamo una soluzione + attimale.
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!" A. Einstein |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: May 2001
Città: Triggiano
Messaggi: 4459
|
Bè diciamo che ho risolto, prendendo quello che volevo tramite form.oggetto.proprietà (nella quale ci memorizzavo la variabile)
Ecco sapevo di risolvere con il modulo ma... non ne ho mai usati... come faccio? Nella variabile deve andare settata una path, la quale deve essere letta dai 2 form. Grazie
__________________
Asrock AB350M Pro 4 - AMD Ryzen 7 5800x - 2x8GB Ram Corsair Vengeance LPX DDR4 3000 Mhz CL15 - MSI GeForce GTX 1070 Aero ITX 8GB - Sabrent 512GB Rocket NVMe PCIe M.2 2280 - Samsung 850 EVO 250GB Sata3 - Samsung 27" C27JG5x QHD 144 Hz |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Bhe nn ti conviene andare a leggere così, perchè altrimenti se chiudi il form con Unload Me, lui lo deve rifare il Load, ed alla fine ti carica sempre il form.. ma siccome nn lo chiudi, perchè tu hai preso solo un dato dall'altro form e nn hai premuto sulla X, il form ti rimane aperto in backgroud e nn si chiede bene il tuo programma!
Ti ho fatto un esempietto per il modulo
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!" A. Einstein |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: May 2001
Città: Triggiano
Messaggi: 4459
|
Tra questo e l'altro thread ti sto facendo impazzire
Spero di non seccarti con la mia ignoranza, ora provo il tuo modulo, vediamo cosa ne esce fuori Grazie ancora, molto disponibile!!!!
__________________
Asrock AB350M Pro 4 - AMD Ryzen 7 5800x - 2x8GB Ram Corsair Vengeance LPX DDR4 3000 Mhz CL15 - MSI GeForce GTX 1070 Aero ITX 8GB - Sabrent 512GB Rocket NVMe PCIe M.2 2280 - Samsung 850 EVO 250GB Sata3 - Samsung 27" C27JG5x QHD 144 Hz |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Ma va, quando nn sono in giro con amici o in giro con la tipa sono qui al pc
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!" A. Einstein |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: May 2001
Città: Triggiano
Messaggi: 4459
|
Ho provato a fare ciò che ho capito (chissà che disastro
In pratica ho spostato tutte le dim che avevo nel form delle opzioni, nel modulo (perchè il programma mi dava errori ovviamente) Il tutto si avvia e funziona bene, ma arrivato al punto in cui deve eseguire: Codice:
Function avviabrowser() leggini Shell (ret) End Function Non deve andarselo a prendere da solo?
__________________
Asrock AB350M Pro 4 - AMD Ryzen 7 5800x - 2x8GB Ram Corsair Vengeance LPX DDR4 3000 Mhz CL15 - MSI GeForce GTX 1070 Aero ITX 8GB - Sabrent 512GB Rocket NVMe PCIe M.2 2280 - Samsung 850 EVO 250GB Sata3 - Samsung 27" C27JG5x QHD 144 Hz |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: May 2001
Città: Triggiano
Messaggi: 4459
|
COME NON DETTO!!
Nel modulo avevo dichiarato la variabile RET con la funzione DIM, ora l'ho cambiato in public. Ora nel modulo ci metto tutta quella roba condivisa tra i form, così lo ottimizzo per bene. Grazie infinite!!! Per il secondo problema invece? hai qualche idea?
__________________
Asrock AB350M Pro 4 - AMD Ryzen 7 5800x - 2x8GB Ram Corsair Vengeance LPX DDR4 3000 Mhz CL15 - MSI GeForce GTX 1070 Aero ITX 8GB - Sabrent 512GB Rocket NVMe PCIe M.2 2280 - Samsung 850 EVO 250GB Sata3 - Samsung 27" C27JG5x QHD 144 Hz |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Miraccomando nn spoastare tutte le varibili che nn condividi, altrimenti occupi memoria per nulla!!!
Per il secondo problema io di solito nn uso la sleep per grandi tempi.. creo un timer settato a 60000 (1 minuto), tengo una variabile che mi conta fino a 10, ogni volta che arriva a faccio eseguire quello che volevo e resetto la variabile... così si fa una contatore che stazione il programma per 10 minuti!! Non è che lo ibernizza come con la sleep, ma lo mette in standby!
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!" A. Einstein |
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: May 2001
Città: Triggiano
Messaggi: 4459
|
Uhmmm ci proverò, credo di potercela fare, spero
ho trovato un altro bugghino nel mio programma, in pratica se clicco sul pulsante ESCI, che ho impostando con il comando END, il programmino esce tranquillamente... Se clicco sulla X in alto a destra, il programma scompare ma rimane in memoria nel taskmanager... che devo fare?
__________________
Asrock AB350M Pro 4 - AMD Ryzen 7 5800x - 2x8GB Ram Corsair Vengeance LPX DDR4 3000 Mhz CL15 - MSI GeForce GTX 1070 Aero ITX 8GB - Sabrent 512GB Rocket NVMe PCIe M.2 2280 - Samsung 850 EVO 250GB Sata3 - Samsung 27" C27JG5x QHD 144 Hz |
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
ASSOLUTAMENTE MAI UTILIZZARE IL COMANDO END
Metti sempre Unload Me per uscire... (nel tasto intendo) Se il programma nn si chiude, è perchè c'è qlc che lo tiene in gioco, fai nu debug e controlla cosa nn si è chiuso bene, ma mai utilizzare l'END !!!!!
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!" A. Einstein |
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: May 2001
Città: Triggiano
Messaggi: 4459
|
Ok allora ci metto Unload Me al posto di end, per quanto riguarda il pulsante esci... però se chiudo dalla X rimane in memoria... Provo ad usare il debug, ma so usarlo a bassi livelli, cmq ce provo e vi dico
Thx!
__________________
Asrock AB350M Pro 4 - AMD Ryzen 7 5800x - 2x8GB Ram Corsair Vengeance LPX DDR4 3000 Mhz CL15 - MSI GeForce GTX 1070 Aero ITX 8GB - Sabrent 512GB Rocket NVMe PCIe M.2 2280 - Samsung 850 EVO 250GB Sata3 - Samsung 27" C27JG5x QHD 144 Hz |
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: May 2001
Città: Triggiano
Messaggi: 4459
|
Se faccio UNLOAD ME è peggio.. addirittura se faccio l'esecuzione tramite vb, mi rimane in esecuzione e devo stopparlo. Con end mi si chiudeva l'esecuzione.
Dove sbaglio? Come controllo con il debug?
__________________
Asrock AB350M Pro 4 - AMD Ryzen 7 5800x - 2x8GB Ram Corsair Vengeance LPX DDR4 3000 Mhz CL15 - MSI GeForce GTX 1070 Aero ITX 8GB - Sabrent 512GB Rocket NVMe PCIe M.2 2280 - Samsung 850 EVO 250GB Sata3 - Samsung 27" C27JG5x QHD 144 Hz |
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Appunto visto.. il tuo programma ha errori, perchè un programma si chiude bene se con l'Unload Me si chiude del tutto (o il progetto si stoppa sa solo)
Sbagli che molto probabilmente nn chiudi bene qlc form, oppure vai a pescare delle informazioni su altri form e li lanci ma nn li chiudi! Controlla quando vai a chiudere i vari form, se hai messo in tutti l'unload me, e controlla che tu nn vada a prendere cose in altro form!!
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!" A. Einstein |
|
|
|
|
|
#15 |
|
Senior Member
Iscritto dal: May 2001
Città: Triggiano
Messaggi: 4459
|
Facendo questa codifica i 2 form vengono chiusi bene e l'esecuzione, tramite vb, viene terminata con successo
Codice:
Private Sub lblesci_Click() Unload frmopzioni Unload Me End Sub
__________________
Asrock AB350M Pro 4 - AMD Ryzen 7 5800x - 2x8GB Ram Corsair Vengeance LPX DDR4 3000 Mhz CL15 - MSI GeForce GTX 1070 Aero ITX 8GB - Sabrent 512GB Rocket NVMe PCIe M.2 2280 - Samsung 850 EVO 250GB Sata3 - Samsung 27" C27JG5x QHD 144 Hz |
|
|
|
|
|
#16 |
|
Senior Member
Iscritto dal: May 2001
Città: Triggiano
Messaggi: 4459
|
Ora si chiude... in pratica non avevo inserito un UNLOAD ME nel form delle opzioni.. quindi rimaneva in memoria proprio come dicevi tu
Ora ho modificato un pò il ciclo perchè se lo mettevo, in fase di inizializzazione mi dava errori xkè non riusciva a caricare cose che stanno nel form stesso. Mi sa che devo riorganizzare la struttura del programma, ora ho capito. Grazie ancora per le dritte
__________________
Asrock AB350M Pro 4 - AMD Ryzen 7 5800x - 2x8GB Ram Corsair Vengeance LPX DDR4 3000 Mhz CL15 - MSI GeForce GTX 1070 Aero ITX 8GB - Sabrent 512GB Rocket NVMe PCIe M.2 2280 - Samsung 850 EVO 250GB Sata3 - Samsung 27" C27JG5x QHD 144 Hz |
|
|
|
|
|
#17 |
|
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Prego anche a questo 3d
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!" A. Einstein |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:04.


















