Ci siamo passati tutti...Originariamente inviato da domdin
Hai centrato in pieno.![]()
In questo caso allora c'è un problema diverso, anche se non riesco a capire come possa riproporsi il caso dato che tu rimuovi variabili globali che utilizzi erroneamente, quindi non dovresti più potervi accedere, e lo stesso vale per le variabili locali delle procedure che creano e aprono il Form, a meno che non siano queste procedure a memorizzare da qualche parte o inizializzare nel modo errato il Form che vanno a creare.Originariamente inviato da domdin
Questo l'ho pensato anche io, ma anche se dichiaro la variabile form nella procedura di apertura della form stessa il problema si ripropone. E' come se dovessi dichiarare le variabili degli enne form (identici) con enne nomi diversi del tipo frm1, frm2...,frmn.
Tutto il codice che riguarda e opera sul Form che viene aperto va spostato nella classe del Form stesso: la procedura che effettua la creazione si dovrebbe limitare - appunto - a creare la finestra e passare solo i parametri indispensabili che consentono a essa di inizializzarsi.
Immaginavo che l'uso dipendesse da questa esigenza. Ad ogni modo, vi sono altre soluzioni (benché richiedano qualche conoscenza in più) che ottengono lo stesso effetto.Originariamente inviato da domdin
Uso gli MDI perché mi permettono di aprire più form contemporaneamente, in questo modo se sto facendo una cosa e ho bisogno di leggere un dato da un'altra parte lo posso fare senza dover chiudere la form in questione.
Cosa mi consiglieresti in questo senso?
Ad esempio, sfruttando i Frame, puoi creare un'interfaccia che si occupa specificatamente di modificare i dettagli di un elemento: questa interfaccia non è legata da una finestra ma può essere creata ovunque, senza duplicarne il codice s'intende, consentendo di realizzare architetture molto più flessibili.
Dai un'occhiata ad esempio a questa pagina (è un articolo tratto da un esempio pubblicato da me e dovrebbe essere abbastanza semplice).
Ciao!![]()