Autore Topic: [RISOLTO] metodo ShowModal per chiamare un nuovo form  (Letto 2333 volte)

Offline swsooue

  • Gamberetto
  • *
  • Post: 24
    • Mostra profilo
[RISOLTO] metodo ShowModal per chiamare un nuovo form
« il: 26 Agosto 2010, 14:14:56 »
Ciao a tutti,

dal mio form principale, quando un utente clicca su un pulsante devo aprire un nuovo form, per cui ho fatto così:

Codice: [Seleziona]
PUBLIC SUB Pulsante_Click()

MACnew.ShowModal

END

Il nuovo form si apre regolarmente, ma se vado con il mouse a cliccare su un altro pulsante del form principale, questo funziona !!!
Io vorrei invece che chiamando il nuovo form, il form principale cessasse di funzionare finchè il nuovo form non è chiuso.
Il metodo ShowModal infatti pensavo facesse questo, ma poi ho capito che non è proprio così
(io infatti facevo il paragone con Visual Basic "MACnew.Show vbModal")

Come posso fare ??

Grazie
Gigi
« Ultima modifica: 27 Agosto 2010, 23:28:40 da swsooue »

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: metodo ShowModal per chiamare un nuovo form
« Risposta #1 il: 26 Agosto 2010, 14:43:50 »
Anche ShowDialog da lo stesso errore?

Ho notato che fai continuamente riferimento a Visual Basic. TI prego abbandona questa convinzione. Gambas è Gambas e VB è VB.

Offline Berserker79

  • Grande Gambero
  • ***
  • Post: 201
    • Mostra profilo
Re: metodo ShowModal per chiamare un nuovo form
« Risposta #2 il: 26 Agosto 2010, 20:39:30 »
Strano, perchè con showmodal si ottieno proprio quello che serve a te.
Che versione hai di gambas???

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: metodo ShowModal per chiamare un nuovo form
« Risposta #3 il: 26 Agosto 2010, 23:08:37 »
Domanda stupida: quando vai a cliccare per la 2^ volta sulla Form chiamante, penso che sia FMain.Form, ilaForm chiamata é sempre attiva e visibile? Qual'é il primo oggetto-evento della  nuova Form?
:ciao:

Offline swsooue

  • Gamberetto
  • *
  • Post: 24
    • Mostra profilo
Re: metodo ShowModal per chiamare un nuovo form
« Risposta #4 il: 27 Agosto 2010, 08:56:16 »
Anche ShowDialog da lo stesso errore?

Ho notato che fai continuamente riferimento a Visual Basic. TI prego abbandona questa convinzione. Gambas è Gambas e VB è VB.

Si, anche ShowDialog dà lo stesso problema

Scusami se faccio riferimento a Visual Basic, ma sto portando una applicazione che ho su quel linguaggio per cui faccio riferimento a quello anche per far capire cosa devo fare.


Offline swsooue

  • Gamberetto
  • *
  • Post: 24
    • Mostra profilo
Re: metodo ShowModal per chiamare un nuovo form
« Risposta #5 il: 27 Agosto 2010, 08:57:00 »
Strano, perchè con showmodal si ottieno proprio quello che serve a te.
Che versione hai di gambas???

Ho la versione 2.19
Vale la pena aggiornare alla 2.21 ??



« Ultima modifica: 27 Agosto 2010, 09:16:43 da swsooue »

Offline swsooue

  • Gamberetto
  • *
  • Post: 24
    • Mostra profilo
Re: metodo ShowModal per chiamare un nuovo form
« Risposta #6 il: 27 Agosto 2010, 08:59:32 »
Domanda stupida: quando vai a cliccare per la 2^ volta sulla Form chiamante, penso che sia FMain.Form, ilaForm chiamata é sempre attiva e visibile? Qual'é il primo oggetto-evento della  nuova Form?

si, quando clikko per la seconda volta sulla FMain.Form, l'altra Form è sempre visibile e anche attiva.
Sulla nuova Form ho solo posizionato un bottone e una label, non ho ancora scritto del codice, potrebbe essere quello ??

Gigi

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: metodo ShowModal per chiamare un nuovo form
« Risposta #7 il: 27 Agosto 2010, 11:20:37 »
Domanda stupida: quando vai a cliccare per la 2^ volta sulla Form chiamante, penso che sia FMain.Form, ilaForm chiamata é sempre attiva e visibile? Qual'é il primo oggetto-evento della  nuova Form?

si, quando clikko per la seconda volta sulla FMain.Form, l'altra Form è sempre visibile e anche attiva.
Sulla nuova Form ho solo posizionato un bottone e una label, non ho ancora scritto del codice, potrebbe essere quello ??

Gigi


No. Lo showmodal è un metodo completamente slegato dal contenuto del form. Potresti anche mostrare solo un form vuoto, lo scopo di showmodal (o showdialog) è quello di mantenere attivo sempre e solo il form principale.

La tua versione di Gambas è compilata o presa dai repo?

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: metodo ShowModal per chiamare un nuovo form
« Risposta #8 il: 27 Agosto 2010, 11:59:48 »
Incuriosito ho fatto un test anch'io:  :coder:

su Gambas 2.21 no problem...
su Gambas 2.19 idem...  :-\

Ho provato anche a fare cosi':
FMain con Classe di avvio
Form1 richiamata con .Show da FMain
Form2 richiamata con .ShowModal da Form1

L'unico inconveniente che ho riscontrato e' che con Form2 in ShowModal riesco a dare il focus alla FMain ma non ad utilizzare gli oggetti in essa contenuti.

Puoi allegare l'intero tuo progetto per alcuni test?

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: metodo ShowModal per chiamare un nuovo form
« Risposta #9 il: 27 Agosto 2010, 12:04:47 »
COme accennato da Cesko, la proprietà viene impostata a livello di libreria gtk/qt, ed è slegata da Gambas. Se non funziona, ho come l'impressione ci sia qualche problema a livello di librerie, come hai installato Gambas?

Offline swsooue

  • Gamberetto
  • *
  • Post: 24
    • Mostra profilo
Re: metodo ShowModal per chiamare un nuovo form
« Risposta #10 il: 27 Agosto 2010, 22:52:31 »
COme accennato da Cesko, la proprietà viene impostata a livello di libreria gtk/qt, ed è slegata da Gambas. Se non funziona, ho come l'impressione ci sia qualche problema a livello di librerie, come hai installato Gambas?

Ciao,

rispondo sia a te sia a Cesko:

avevo installato Gambas 2.19 semplicemente dal "Ubuntu Software Center".

Ora ho disinstallato Gambas 2.19

Ho scaricato Gambas 2.21, scompattato il pacchetto, dalla console ho fatto, in sequenza:
./configure
make
make install
(ho guardato il file INSTALL)

Tutto ok, ma ora nel menu "Applicazioni / Programmazione" non c'è più Gambas, come lo lancio e/o come lo metto nel menu ???

Gigi


Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: metodo ShowModal per chiamare un nuovo form
« Risposta #11 il: 27 Agosto 2010, 23:00:53 »
Usteria, leggo adesso che hai Ubunto (presumo che hai Gnome come DM) e non ho tenuto conto del fattore Gtk... le mie prove si sono basate solamente su Qt...

Offline swsooue

  • Gamberetto
  • *
  • Post: 24
    • Mostra profilo
Re: metodo ShowModal per chiamare un nuovo form
« Risposta #12 il: 27 Agosto 2010, 23:06:09 »
Usteria, leggo adesso che hai Ubunto (presumo che hai Gnome come DM) e non ho tenuto conto del fattore Gtk... le mie prove si sono basate solamente su Qt...

.......mmmmmmm......mi sa che il problema è proprio quello  !!!

Ti confermo che Ubuntu usa Gnome come interfaccia grafica.

Gigi

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: metodo ShowModal per chiamare un nuovo form
« Risposta #13 il: 27 Agosto 2010, 23:10:24 »
Prova a disabilitare il componente gb.gui e abilitare il componente gb.qt

Offline swsooue

  • Gamberetto
  • *
  • Post: 24
    • Mostra profilo
Re: metodo ShowModal per chiamare un nuovo form
« Risposta #14 il: 27 Agosto 2010, 23:28:20 »
Prova a disabilitare il componente gb.gui e abilitare il componente gb.qt

FUNZIONA !!!!!!!!!!!!!!!   :2birre:

Gigi