Autore Topic: Apertura form modale.  (Letto 1545 volte)

Offline Berserker79

  • Grande Gambero
  • ***
  • Post: 201
    • Mostra profilo
Apertura form modale.
« il: 28 Gennaio 2009, 13:05:40 »
Ciao a tutti, mi sono da poco accostato alla programmazione, e ho subito adorato gambas.
al momento sto leggendo la guida che ho scaricato dal sito ufficiale.
Volevo chiedervi come richiamare un form in maniera modale.
su visual basic 2008 utilizzo la sintassi nome_oggetto.showdialog
ma su gambas non ho trovato l'equivalente comando.
Grazie anticipatamente per il vostro aiuto.

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: Apertura form modale.
« Risposta #1 il: 28 Gennaio 2009, 16:10:33 »
Un form modale si richiama da un altro form con NomeForm.ShowModal
Visita il mio sito personale: http://www.leonardomiliani.com

Offline Berserker79

  • Grande Gambero
  • ***
  • Post: 201
    • Mostra profilo
Re: Apertura form modale.
« Risposta #2 il: 29 Gennaio 2009, 16:22:15 »
Ciao, grazie per la risposta.
Quindi basta scrivere la stringa di codice che mi hai detto tu ed è tutto ok?
io invece per l'evento click usavo questa sintassi:

DIM NOME_VARIABILE AS NOME_FORM
NOME_VARIABILE = NEW NOME_FORM
NOME_VARIABILE.SHOW

END SUB

Che su VB2008 va bene, anche se provando il codice da te indicato funziona uguale.
Ciao e ancora grazie.

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Apertura form modale.
« Risposta #3 il: 29 Gennaio 2009, 19:55:39 »
In gambas, per le form, esiste una proprietà (come anche in basic, in vc, ecc.), che determina il tipo di finestra: normale o di dialogo.
Ma, a prescindere da questo, la finestra può comunque essere aperta nei due modi: nomale o dialogo, usando i metodi: Show() (normale) o ShowModal() (dialogo).
L'impostazione data a livello di disegno della form, serve solo a definire alcuni aspetti classici della finestra, come ad esempio: i bordi, i pulsanti di sistema (in alto a destra), ecc., insomma il comportamento grafico. I due metodi, invece, ne determinano proprio il funzionamento: modale o normale.
Come in VB, una form modale si mette di default sopra tutte le altre, e non permette di usare la finestra padre, fino alla sua chiusura. Una finestra normale, si comporta invece come qualsiasi altra form, ovviamente dipedentemente da dove viene chiamata (vedi SDI o MDI).
La fase di creazione è uguale per tutte e due.

Offline madnessmike

  • Gamberetto
  • *
  • Post: 43
    • Mostra profilo
    • MadnessBlog
Re: Apertura form modale.
« Risposta #4 il: 29 Gennaio 2009, 20:03:11 »
Interessante, questa qui non la sapevo proprio (la mia ignoranza non ha confini! :-D). Avevo proprio bisogno di una cosa del genere per qualche mio programmino...

Offline Berserker79

  • Grande Gambero
  • ***
  • Post: 201
    • Mostra profilo
Re: Apertura form modale.
« Risposta #5 il: 30 Gennaio 2009, 11:48:39 »
Ciao md9327, potresti spiegarmi la differenza fra SDI e MDI???
Se non ti va di rispondere non fa niente, capisco che a volte è una rottura stare a spiegare a dei niubbi.
Ciao.

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Apertura form modale.
« Risposta #6 il: 30 Gennaio 2009, 13:31:34 »
Eh, sì, abbassarsi fino a livello i nubbio è una bella fatica...

 :-P  :-P  :-P

Scherzi a parte,

spiegarne qui il concetto è veramente un pò lunghetto, ma posso dire in modo molto semplicistico che:

SDI (Single Document Interface): applicazione che gestisce tramite una singola finestra l'intera applicazione (anche se con toolbar, menu, ecc.);

MDI (Multi Document Interface): la mainform fà da finestra principale dell'applicazione, da cui poi possono partire in multitask diverse altre sotto finestre (o processi in genere).

In realtà, le differenze vere sono anche altre, ma ti consiglio di dare una letta in giro per la rete...

Offline Berserker79

  • Grande Gambero
  • ***
  • Post: 201
    • Mostra profilo
Re: Apertura form modale.
« Risposta #7 il: 30 Gennaio 2009, 15:31:50 »
Grazie mille  :-D