Autore Topic: inibizione tasti  (Letto 1629 volte)

g.paolo

  • Visitatore
inibizione tasti
« il: 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.

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: inibizione tasti
« Risposta #1 il: 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.

g.paolo

  • Visitatore
Re: inibizione tasti
« Risposta #2 il: 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.

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: inibizione tasti
« Risposta #3 il: 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.

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: inibizione tasti
« Risposta #4 il: 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
Visita il mio sito personale: http://www.leonardomiliani.com

g.paolo

  • Visitatore
Re: inibizione tasti
« Risposta #5 il: 17 Aprile 2008, 12:33:48 »
Molto bene. Con il Vs. lodevole contributo ho risolto il problema!

  • Visitatore
Re: inibizione tasti
« Risposta #6 il: 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