Gambas-it

Archivi (sola lettura) => Domande tecniche (Gambas 2) => Topic aperto da: g.paolo - 14 Aprile 2008, 11:16:54

Titolo: inibizione tasti
Inserito da: g.paolo - 14 Aprile 2008, 11:16:54
Avete presente il comando On Key di VB che permetteva di intercettare una combinazione tasti durante l'uso del programma?
Non riesco a trovare qualcosa di simile in gambas perchè vorrei inibire la combinazione Alt+F4 che normalmente fa uscire dall'applicazione.
Titolo: Re: inibizione tasti
Inserito da: md9327 - 16 Aprile 2008, 12:18:10
Non mi sembra ci sia una cosa simile, però puoi intercettare la chiusura tramite il suo evento.
Se l'applicazione prevede una MainWindow, la chiusura puoi intercettarla con Form_Close() e annullare l'evento se la causa non è quella voluta.

Non sò, questa è un'idea che applico normalmente nei miei programmi.
Titolo: Re: inibizione tasti
Inserito da: g.paolo - 16 Aprile 2008, 12:44:40
Penso che l'idea sia ottima, visto che non esiste l'opzione che cercavo.
E' ovvio che in tal caso dovrei estendere il principio che hai spiegato a tutti i form se volessi inibire la chiusura di tutti, mentre in VB bastava solo una routine nel modulo o form d'avvio.
Vedrò di impiegarlo solo sul mainform facendo a meno del resto. Grazie.
Titolo: Re: inibizione tasti
Inserito da: md9327 - 17 Aprile 2008, 11:00:06
Bè, l'idea infatti era per la main, per le altre non ho problemi perchè poi l'uscita la controllo.
Per la mainform la cosa è diversa perchè questa chiude anche l'applicazione, con i conseguenti problemi che hai indicato.
Se ci metti anche una bella Message.Warning penso tu possa risolvere con poche righe di codice.
Titolo: Re: inibizione tasti
Inserito da: leo72 - 17 Aprile 2008, 11:47:40
Codice: [Seleziona]

PUBLIC SUB Form_Close()
DIM Risposta AS Integer

  Risposta = Message.Warning("Vuoi chiudere l'applicazione?", "Sì", "No")
  IF Risposta = 2 THEN
    STOP EVENT  '-- l'utente ha scelto no perciò fermi la chiusura
  END IF

END
Titolo: Re: inibizione tasti
Inserito da: g.paolo - 17 Aprile 2008, 12:33:48
Molto bene. Con il Vs. lodevole contributo ho risolto il problema!
Titolo: Re: inibizione tasti
Inserito da: - 18 Maggio 2008, 17:40:57
Bello bello

PUBLIC SUB Form_Close()
    STOP EVENT  
    ME.hide
END

Me lo mettto in trayicon senza chiuderlo.....

Ovviamente setto la trayicon senno mi resta li e chi lo ripesca più ?  :-P