Autore Topic: form  (Letto 1129 volte)

g.paolo

  • Visitatore
form
« il: 20 Febbraio 2008, 12:24:45 »
Vi ricordate il metodo per sapere se un form è gia visualizzato?

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: form
« Risposta #1 il: 20 Febbraio 2008, 20:03:59 »
A meno di non fare voli pindarici, penso che l'unica cosa è mantenersi un puntamento alla form in questione.
Nella classe Application non c'è nulla che tenga in corpo automaticamente gli oggeti usati, tranne solo per quelli caricati dall'interprete ma questo non ti dice se è usata e/o visualizzata.

g.paolo

  • Visitatore
Re: form
« Risposta #2 il: 20 Febbraio 2008, 21:30:31 »
Immaginavo non fosse semplice, anche perchè forse ho impostato male il programma.
Praticamente nella variabile "com_select" carico un comando SELECT su tabelle ogni volta diverse, e la do in pasto a questa SUB che richiamo da pulsanti diversi.
Come vedi ogni volta creo una nuova istanza dell'oggetto "Fbrowse" che è una griglia di visualizzazione.
In breve vorrei che ogni volta apro una nuova istanza di "Fbrowse" applicata all'oggetto "hform", venisse chiusa la precedente istanza eventualmente a schermo. Dico eventuale perchè al primo richiamo della SUB non esiste ovviamente ancora alcuna istanza dell'oggetto "hform".

PUBLIC SUB presenta_lista()            
  DIM rData AS Result
  DIM hForm AS Fbrowse
  rData = fmain.connessione.Exec(fmain.com_select)
  hForm.Show
CATCH
  Message.Error(DConv(Error.Text))
END

Offline giulio

  • Maestro Gambero
  • ****
  • Post: 280
    • Mostra profilo
Re: form
« Risposta #3 il: 20 Febbraio 2008, 21:45:59 »
Puoi provare così:

rData = fmain.connessione.Exec(fmain.com_select)
'prova a chiudere hForm se è aperta
TRY hForm.Close
WAIT
hForm.Show

Ciao.

g.paolo

  • Visitatore
Re: form
« Risposta #4 il: 20 Febbraio 2008, 21:49:51 »
Grazie molte, ora ci provo!

g.paolo

  • Visitatore
Re: form
« Risposta #5 il: 20 Febbraio 2008, 21:55:51 »
Funziona a meraviglia! E' bastato aggiungere la riga
TRY fmain.hForm.Close
prima di aprire la nuova istanza di hform
E' una forza questo comando TRY!!!