Autore Topic: BANALE: Evento KeyPress  (Letto 4309 volte)

Offline luigitessitore

  • Gamberetto
  • *
  • Post: 6
    • Mostra profilo
BANALE: Evento KeyPress
« il: 31 Luglio 2012, 02:07:11 »
Salve a tutti,
una domanda banale ma che non sono riuscito a chiarire con le varie ricerche tramile BigG.
Ho bisogno di realizzare una applicazione "cieca".. che modifichi dei valori su alcune label alla pressione di determinati tasti.
Ora, l'evento KeyPress si applica *per forza* ad un oggetto (es textbox) oppure posso catturare la pressione di un tasto solo caricando il form?
Come faccio?

Grazie. :-[

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: BANALE: Evento KeyPress
« Risposta #1 il: 31 Luglio 2012, 15:58:05 »
Non hai specificato se i tasti siano tasti carattere o altro, nè quale sia l'oggetto attivo al momento della pressione dei tasti, tuttavia trattandosi di una rilevazione, credo di capire, di tipo generico, penso che tu voglia catturare l'evento, qualunque sia l'ioggetto grafico attivo in quel momento nella Form.
Per ovviare a ciò, G3 lo permette, puoi scrivere una procedura evento _KeyPress nella Form di tuo interesse, Essa viene schedulata per qualsiasi pressione di tasto che avvenga dentro la Form o dentro un qualsiasi oggetto interno alla Form stessa. Faccio un esempio di procedura _KeyPress:
Codice: gambas [Seleziona]
Public Sub Form1_KeyPress()
  Select Case Key.Code
              Case Key.Enter, Key.Return      'testa la pressione del tasto "INVIO" del tastierino numerico ovvero della tastiera alfanumerica
                   Label1.text = "INVIO"
              Case Key.F1
                   Label2.text = "Tasto F1"
              Case "0" To "9"
                   Label2.text = "crt numerico"
  End Select
End

Spero di avere capito la domanda.   :)  :ciao:
:ciao:

Offline luigitessitore

  • Gamberetto
  • *
  • Post: 6
    • Mostra profilo
Re: BANALE: Evento KeyPress
« Risposta #2 il: 31 Luglio 2012, 21:54:05 »
Perfetto.
Hai compreso esattamente la situazione.
Premessa: non ho le idee ben chiare su cosa voglio realizzare; diciamo che sto sperimentando un pò Gambas.

In sostanza vorrei analizzare la possibilità di realizzare una specie di "eliminacode", un qualcosa che, opportunamente connesso ad un monitor medio/grande, mi tenga sotto controllo il numero che è attualmente interessato dal commesso.

Pensavo, a grandi linee, di creare una applicazione che non prevedesse altro input che i tasti di una keypad usb.
Immaginavo di poter includere nel form due/tre label con visualizzato un progressivo. Premendo, per esempio, il Key7 aumento di una unità il numero nella label1, il Key 4 diminuisco di una unità e con il Key1 porto a zero il counter. Idem per le altre label.

Grazie al tuo contributo ho una base da cui partitre.
Facciamo così: se questa specie di "analisi" interessa qualcun altro possiamo continuare a confrontarci, altrimenti chiudiamo il thread con un bel RISOLTO.
Ok?

:)

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: BANALE: Evento KeyPress
« Risposta #3 il: 31 Luglio 2012, 23:01:09 »
Quindi alludi a qualcosa simile all'allegato?  :)

É solo un'idea che naturalmente puoi giostrare a tuo piacimento. La nota riportata in calce alla Form è un esempio, ma che potrebbe anche non essere mostrata. Il tastierino potrebbe essere sostituito da un semplice mouse o simile ai cui tasti Dx e Sx potrebbero essere associati i valori "+" e "-", mentre l'azzeramento potrebbe essere comandato dalla pressione della rotella. Sono tutte e semplicemente idee.
Una curiosità: la postazione  operativa è ad uso esclusivo del commesso o, grazie al programmino, oltre ad eliminare le code, elimineresti ...  anche il commesso?  :o
Chiedo scusa per lo scherzo ... pesante, ma la colpa è sempre della cosiddetta tecnologia. Infatti sono sempre più convinto che per il bene di tutti occorrerebbe  :hatecomputer:
 :ciao:


:ciao:

Offline luigitessitore

  • Gamberetto
  • *
  • Post: 6
    • Mostra profilo
Re: BANALE: Evento KeyPress
« Risposta #4 il: 31 Luglio 2012, 23:47:51 »
Allora.. mi spiego un pò meglio.
Volevo analizzare la possibilità di creare un sistema eliminacode leggermente diverso da quelli utilizzati dai supermercati o dalle Poste. Faccio un esempio concreto di applicazione.
Una sagra.
Alla cassa io pago per 10 salsicce, 2 bottiglie di Acqua, 3 bruschette. Mi viene associato il progressivo 33.
Il tizio prima di me paga per 3 spaghetti e ha il progressivo 32.
Può benissimo capitare che la mia comanda, 33, venga servita PRIMA della sua, solo perchè gli spaghetti non sono ancora cotti. E fino qui nulla di strano.
Ma immaginiamo cosa succede allo sportello del ritiro vassoi: non è detto che se preparo il vassoio 29 il legittimo proprietario si precipita a prenderlo. Nel frattempo possono essere pronti anche il 24, il 30 ed il 31.. Da qui nasce la necessità di realizzare un sistema che mi consenta di visualizzare I VASSOI PRONTI && I VASSOI NON RITIRATI. E' facile pensare che possano essere al massimo tre.. da qui nasce l'idea di un monitor con tre "label" comandabili da keypad USB. Perchè da keypad? Perchè l'operatore che deve consegnare i vassoi non ha "tempo da perdere" con mouse, puntamenti, doppi click e interfacce.

Eccezioni.

Che succede se ho un solo vassio? Devo mandare a NULL ,per esempio, Label1 e Label3 (le label più esterne), lasciano attiva Label2. Supponendo di dividere il tastierino in "colonne", potrei usare Key.7 per incrementare il numero, Key.4 per decrementare e Key.1 per NULL.

Ok, supponiamo che Label1 e 3 =null e Label2=35, che succede se devo reimpostare, per esempio, Label1 a 36? Mica posso premere 36 volte su Key.7? Vero. A questo punto è previsto un controllo sul numero maggiore attualmente visualizzato su una label, lo catturo in una variabile, lo incremento, e alla pressione di Key.7 (->Label1) o Key.9 (->Label2) lo sparo come Labelx.value.

Perplessità.
Devo realizzare un Form che si adatti alla dimensione max dello schermo e che mi deve garantire un buon risultato a numerose risoluzioni ( a partire da un min. di 1024*768).

Features "fighe".
Una voce sintetizzata che mi annuncia i numeri attualmente visualizzati.

Features "fighe" - Ver.2
Montare tutto su Raspberry. Uff.. :o

Note:
il software di gestione, creazione e stampa comande l'ho già fatto in PHP+MySQL (da anni.. già testato. Anche se l'ho riscritto ex-novo con CodeIgniter). Anche il sistema di gestione l'ho già realizzato con PHP+MySQL+Javascript. Pare che funzioni bene. Ma sono un fottuto masochista. Q Linux. W Gambas.
;)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: BANALE: Evento KeyPress
« Risposta #5 il: 01 Agosto 2012, 02:51:21 »
Perplessità.
Devo realizzare un Form che si adatti alla dimensione max dello schermo e che mi deve garantire un buon risultato a numerose risoluzioni ( a partire da un min. di 1024*768).

La dimensione dello schermo dovresti ottenerlo con:
Codice: gambas [Seleziona]

Public Sub Button1_Click()

 Dim w, h As Integer  

   w = Screen.AvailableWidth
   h = Screen.AvailableHeight

   Print w, h

End
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: BANALE: Evento KeyPress
« Risposta #6 il: 01 Agosto 2012, 08:40:40 »
@  luigitessitore:
Ora credo di avere veramente  capito quello che vuoi fare. E siccome, come noi, sei un linux-dipendente, fai più che bene a riscrivere il programma in Gambas. Se ti occorre aiuto non devi fare altro che chiedere. Perchè, intanto, non cominci a disegnarti la tua brava Form FMain? Nella corrispondente FMain-class potresti come prima cosa scrivere le istruzioni suggerite da vuott per ottenere già subito una form che occupi tutto lo schermo, tanto penso che poi non avrai più bisogno di demassimizzarla.
Buon lavoro.  :ciao:
:ciao:

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: BANALE: Evento KeyPress
« Risposta #7 il: 01 Agosto 2012, 08:59:58 »
@ vuott:
Ho provato per curiosità le istruzioni che hai suggerito prima per la Form a tutto schermo, ma a me non ha funzionato; ha prodotto solo un Print nella console di Gambas, ma senza alcun effetto sulla dimensione grafica della Form stessa . Riconosco che non fino ad oggi non mi sono mai  preoccupato di risolvere tale problematica.
 :ciao:
:ciao:

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: BANALE: Evento KeyPress
« Risposta #8 il: 01 Agosto 2012, 16:57:14 »
@ vuott:
Ho provato per curiosità le istruzioni che hai suggerito prima per la Form a tutto schermo, ma a me non ha funzionato; ha prodotto solo un Print nella console di Gambas, ma senza alcun effetto sulla dimensione grafica della Form stessa . Riconosco che non fino ad oggi non mi sono mai  preoccupato di risolvere tale problematica.
...il Print ovviamente era solo per mostrare  :violent: in modo esemplificativo e didattico cosa restituivano quelle funzioni ! Resta ovvio che sarà il programmatore a servirsi nel modo più opportuno e consono al suo progetto dei valori contenuti in quelle variabili !
Al riguardo ricordo e sottolineo che quelle istruzioni ritornano semplicemente e non impostano i valori del rettangolo del desktop utilizzabile visualizzato sul video. Dunque quei valori, ovviamente, possono essere utilizzati per impostare le dimensioni di un Form (o di quant'altro).


@ vuott:
Ho provato per curiosità le istruzioni che hai suggerito prima per la Form a tutto schermo, ma a me non ha funzionato; ha prodotto solo un Print nella console di Gambas...
 :ciao:
......quindi a te ha funzionato !  :D
   :ciao:
« Ultima modifica: 01 Agosto 2012, 17:06:56 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: BANALE: Evento KeyPress
« Risposta #9 il: 01 Agosto 2012, 23:02:32 »
sottolineo che quelle istruzioni ritornano semplicemente e non impostano i valori del rettangolo del desktop utilizzabile visualizzato sul video. Dunque quei valori, ovviamente, possono essere utilizzati per impostare le dimensioni di un Form (o di quant'altro).

......quindi a te ha funzionato !  :D
   :ciao:
Se volevi convincermi con la spiegazione ultima, mi dispiace, ma non ci sei proprio riuscito. Infatti, qualora si voglia rendere automatico il dimensionamento a tutto schermo di una Form, a prescindere dalla caratteristiche tecniche del monitor, sicuramente l'istruzione che hai riportato come esempio non va bene. Allora, siccome non capisco per limiti miei che cosa intendi con la frase
Citazione
sarà il programmatore a servirsi nel modo più opportuno e consono al suo progetto dei valori contenuti in quelle variabili !
conviene riprendere l'esempio e scriverci valori ed istruzioni, magari riguardanti anche le proprietà della Form, che permettano di capire chiaramente il comportamento consono del programmatore.
Che ne dici?   ;)  ;D
:ciao:

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: BANALE: Evento KeyPress
« Risposta #10 il: 02 Agosto 2012, 00:34:50 »
conviene riprendere l'esempio e scriverci valori ed istruzioni, magari riguardanti anche le proprietà della Form, che permettano di capire chiaramente il comportamento consono del programmatore.
Che ne dici?   ;)  ;D

....se lo viene a sapere md9327, la ceskhonite ce la fa passare a tutti e due a botte di.....!  :death:

A lui piacerebbe di più  ;D se io dicessi che magari.... si potrebbe proporzionare la dimensione del Form sulla base appunto dei valori relativi al desktop disponibile passati da quelle funzioni là....  :-[
...dire e non-dire...  :devil:
« Ultima modifica: 02 Agosto 2012, 03:11:41 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: BANALE: Evento KeyPress
« Risposta #11 il: 02 Agosto 2012, 10:49:04 »
 :evil: APPUNTO!  :evil:

 :D

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: BANALE: Evento KeyPress
« Risposta #12 il: 02 Agosto 2012, 11:08:53 »
:evil: APPUNTO!  :evil:

 :D

Forse mi sono salvato... in corner !  ;D
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: BANALE: Evento KeyPress
« Risposta #13 il: 02 Agosto 2012, 12:18:40 »
Ah, te ne sei accorto in tempo, eh?!?

Sai cosa succede a quelli che aiutano troppo... vengono infettati forzatamente con la "ceskhonite" BLU (quella VERDE è terminata...).

Quello che fà la ceskhonite blu è orribile...  :'(

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: BANALE: Evento KeyPress
« Risposta #14 il: 02 Agosto 2012, 12:33:23 »
Ah, te ne sei accorto in tempo, eh?!?

Sai cosa succede a quelli che aiutano troppo... vengono infettati forzatamente con la "ceskhonite" BLU (quella VERDE è terminata...).

Quello che fà la ceskhonite blu è orribile...  :'(

...cioè.... mo' c'ha pure il Bollino blu ?  :rolleyes:
« Ultima modifica: 12 Settembre 2012, 11:03:44 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »