Gambas-it

Gambas3 => Programmazione => Topic aperto da: pimpoli - 31 Dicembre 2016, 12:39:06

Titolo: Problema con evento KeyPress
Inserito da: pimpoli - 31 Dicembre 2016, 12:39:06
Ciao a tutti...
Ho un problemino riguardante l'evento KeyPress. Ho fatto un programmino semplicissimo: una form, con una textbox e questo codice:

Codice: [Seleziona]
Public Sub TextBox1_KeyPress()

  If Key.Code = Key.Return Then
    Message("OK")
  Endif

End

Avvio con F5 e tutto funziona come previsto: alla pressione di <invio> nella textbox, esce il messaggio.
Il problema è che, dopo aver compilato e creato l'eseguibile, se lancio il programma dall'eseguibile, la cosa non funziona! E' come se l'evento Keypress fosse sparito!
Qualcuno mi sa aiutare?

N.B. Come S.O. uso LinuxMint 18.1 con Cinnamon.
Titolo: Re:Problema con evento KeyPress
Inserito da: Gianluigi - 31 Dicembre 2016, 13:44:19
Dovresti provare usando entrambe le voci Return e Enter
Codice: [Seleziona]
If Key.Code = Key.Return Or Key.Code = Key.Enter Then
    Message("OK")
  Endif

 :ciao:
Titolo: Re:Problema con evento KeyPress
Inserito da: vuott - 31 Dicembre 2016, 17:51:07
....se lancio il programma dall'eseguibile, la cosa non funziona!
Dunque... a me funziona regolarmente.
Tieni presente, però, che sto usando Linux Mint 17.3 . Solo lunedì prossimo potrò fare la prova con Mint 18.1 .



Dovresti provare usando entrambe le voci Return e Enter ...
Ma... questo che c'entra ?   ???
Titolo: Re:Problema con evento KeyPress
Inserito da: Gianluigi - 31 Dicembre 2016, 18:18:59
Dovresti provare usando entrambe le voci Return e Enter ...
Ma... questo che c'entra ?   ???

Ho solo suggerito di fare una prova perché mi risulta che in qualche tastiera (portatili?) non sia così scontato il ritorno codice invio da tastiera o tastierino.  :-\
Titolo: Re:Problema con evento KeyPress
Inserito da: vuott - 31 Dicembre 2016, 18:21:12
(https://thefarmingforum.co.uk/styles/default/xenforo/smilies/scratchhead.gif)
Titolo: Re:Problema con evento KeyPress
Inserito da: Gianluigi - 01 Gennaio 2017, 15:52:17
Probabilmente il mio suggerimento è inutile visto che nella IDE funziona, ma visto che tentar non nuoce...

Potrebbe anche provare a vedere cosa succede spostando il codice su Form invece che sulla TextBox:
Codice: [Seleziona]
Public Sub Form_KeyPress()

  If Key.Code = Key.Return Then
    Message("OK")
  Endif

End

Mi ero dimenticato di dire che anche a me il codice funziona sia nella IDE che creando l'eseguibile.

 :ciao: :ciao:
Titolo: Re:Problema con evento KeyPress
Inserito da: gianfry56 - 01 Gennaio 2017, 19:06:25
Confermo che anche a me il codice funziona sia nella IDE che creando l'eseguibile.

Inoltre, nel mio caso, Key.Code = Key.Return è valido solo per intercettare il tasto Invio principale, mentre, se voglio intercettare quello del tastierino numerico, devo usare Key.Code = Key.Enter.
Titolo: Re:Problema con evento KeyPress
Inserito da: Gianluigi - 01 Gennaio 2017, 19:16:27
Confermo che anche a me il codice funziona sia nella IDE che creando l'eseguibile.

Inoltre, nel mio caso, Key.Code = Key.Return è valido solo per intercettare il tasto Invio principale, mentre, se voglio intercettare quello del tastierino numerico, devo usare Key.Code = Key.Enter.

Giusto, questa è la normalità. Ma io ricordo una discussione letta da qualche parte, sempre che non me la sia sognata, dove qualcuno riceveva enter anche dalla tastiera...
Probabilmente era riferito tanto alla IDE quanto all'eseguibile ma...

 :ciao:
Titolo: Re:Problema con evento KeyPress
Inserito da: pimpoli - 03 Gennaio 2017, 14:24:43
Allora, innanzitutto grazie per le risposte...
Ho provato sia ad aggiungere Key.Code = Key.Enter., anche se io ho un portatile senza tastierino numerico, sia ad agire sull'evento Keypress del Form, ma senza alcun risultato: da ambiente di programmazione tutto funziona, lanciando l'eseguibile invece la pressione di INVIO non scatena alcun evento.
Che devo fare?
Titolo: Re:Problema con evento KeyPress
Inserito da: Gianluigi - 03 Gennaio 2017, 14:38:34

Che devo fare?

Potresti iniziare col postare qui (fra i cancelletti di code) le informazioni di sistema che ottieni dal menu help.

Poi potresti dirmi che componente hai usato per creare il progetto.

Titolo: Re:Problema con evento KeyPress
Inserito da: vuott - 03 Gennaio 2017, 14:56:02
...che componente hai usato per creare il progetto.
Probabilmente Gianluigi si riferisce al Componente grafico.
(Puoi verificarlo cliccando nell'IDE sul meu: Progetto --> Proprietà poi nella finestra di dialogo che appare cliccare su Componenti )
Titolo: Re:Problema con evento KeyPress
Inserito da: Gianluigi - 03 Gennaio 2017, 15:04:54
...che componente hai usato per creare il progetto.
Probabilmente Gianluigi si riferisce al Componente grafico.
(Puoi verificarlo cliccando nell'IDE sul meu: Progetto --> Proprietà poi nella finestra di dialogo che appare cliccare su Componenti )

Ma no! Mi riferivo a quanta farina ha messo nel composto e se è di tipo manitoba...  :P  :P

 :ciao: :ciao:
Titolo: Re:Problema con evento KeyPress
Inserito da: vuott - 03 Gennaio 2017, 15:55:34
e se è di tipo manitoba...
Ad un principiante davi per scontato che fosse di tipo Senatore Cappelli.
Titolo: Re:Problema con evento KeyPress
Inserito da: Gianluigi - 03 Gennaio 2017, 16:35:58
... di tipo Senatore Cappelli.

 :D
In questo forum si può apprendere la programmazione in Gambas e non solo  :ok:
Titolo: Re:Problema con evento KeyPress
Inserito da: kicco - 03 Gennaio 2017, 21:19:57
Citazione
In questo forum si può apprendere la programmazione in Gambas e non solo
Veramente!
https://it.wikipedia.org/wiki/Cappelli_(frumento) (https://it.wikipedia.org/wiki/Cappelli_(frumento))
 :ciao:
Titolo: Re:Problema con evento KeyPress
Inserito da: vuott - 03 Gennaio 2017, 22:20:30
Leeeooooo, questo forum ormai lo puoi chiudere !   
Titolo: Re:Problema con evento KeyPress
Inserito da: allegfede - 09 Gennaio 2017, 12:57:25
prova a passare da gtk a qt (o viceversa) e vedi se il problema si ripresenta.

alle volte il framwork grafico influisce in modi arcani.

PS: buon 2017 a tutti voi gamberi italici :D
Titolo: Re:Problema con evento KeyPress
Inserito da: ilfurlan - 11 Gennaio 2017, 17:42:23
Ciao a tutti...
Ho un problemino riguardante l'evento KeyPress. Ho fatto un programmino semplicissimo: una form, con una textbox e questo codice:

Codice: [Seleziona]
Public Sub TextBox1_KeyPress()

  If Key.Code = Key.Return Then
    Message("OK")
  Endif

End

Avvio con F5 e tutto funziona come previsto: alla pressione di <invio> nella textbox, esce il messaggio.
Il problema è che, dopo aver compilato e creato l'eseguibile, se lancio il programma dall'eseguibile, la cosa non funziona! E' come se l'evento Keypress fosse sparito!
Qualcuno mi sa aiutare?

N.B. Come S.O. uso LinuxMint 18.1 con Cinnamon.

Provato con qt, stesso tuo sistema operativo a 64 bit... funziona anche dall'eseguibile
Versione Gambas 3.9.2
Titolo: Re:Problema con evento KeyPress
Inserito da: pimpoli - 18 Gennaio 2017, 09:41:19
Allora... innanzitutto mi scuso se sono "sparito" per qualche giorno, ma ho avuto impegni personali che non mi hanno lasciato molto tempo libero.
Ecco le informazioni di sistema, come mi consigliava Gianluigi:

Codice: [Seleziona]
[System]
Gambas=3.8.4
OperatingSystem=Linux
Kernel=4.4.0-59-generic
Architecture=x86_64
Distribution=Linux Mint 18.1 Serena
Desktop=GNOME
Theme=Gtk
Language=it_IT.UTF-8
Memory=3881M

[Libraries]
Cairo=libcairo.so.2.11400.6
Curl=libcurl.so.4.4.0
DBus=libdbus-1.so.3.14.6
GStreamer=libgstreamer-0.10.so.0.30.0
GStreamer=libgstreamer-1.0.so.0.802.0
GTK+2=libgtk-x11-2.0.so.0.2400.30
GTK+3=libgtk-3.so.0.1800.9
OpenGL=libGL.so.1.2.0
Poppler=libpoppler.so.58.0.0
QT4=libQtCore.so.4.8.7
QT5=libQt5Core.so.5.5.1
SDL=libSDL-1.2.so.0.11.4

[Environment]
CINNAMON_VERSION=3.2.7
CLUTTER_IM_MODULE=xim
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-5mnlvae45Y,guid=2c2dcef10a6e6b10ca91a1e8587f2565
DEFAULTS_PATH=/usr/share/gconf/cinnamon.default.path
DESKTOP_SESSION=cinnamon
DISPLAY=:0
GB_GUI=gb.qt5
GDMSESSION=cinnamon
GDM_XSERVER_LOCATION=local
GIO_LAUNCHED_DESKTOP_FILE=/usr/share/applications/gambas3.desktop
GIO_LAUNCHED_DESKTOP_FILE_PID=3489
GJS_DEBUG_OUTPUT=stderr
GJS_DEBUG_TOPICS=JS ERROR;JS LOG
GNOME_DESKTOP_SESSION_ID=this-is-deprecated
GTK_IM_MODULE=xim
GTK_MODULES=gail:atk-bridge
GTK_OVERLAY_SCROLLING=1
HOME=<home>
LANG=it_IT.UTF-8
LC_ADDRESS=it_IT.UTF-8
LC_IDENTIFICATION=it_IT.UTF-8
LC_MEASUREMENT=it_IT.UTF-8
LC_MONETARY=it_IT.UTF-8
LC_NAME=it_IT.UTF-8
LC_NUMERIC=it_IT.UTF-8
LC_PAPER=it_IT.UTF-8
LC_TELEPHONE=it_IT.UTF-8
LC_TIME=it_IT.UTF-8
LOGNAME=<user>
MANDATORY_PATH=/usr/share/gconf/cinnamon.mandatory.path
MDMSESSION=cinnamon
MDM_LANG=it_IT.UTF-8
MDM_XSERVER_LOCATION=local
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
PWD=<home>
QT4_IM_MODULE=xim
QT_ACCESSIBILITY=1
QT_IM_MODULE=compose
QT_LINUX_ACCESSIBILITY_ALWAYS_ON=1
QT_QPA_PLATFORMTHEME=qgnomeplatform
QT_STYLE_OVERRIDE=gtk
SESSION_MANAGER=local/<hostname>:@/tmp/.ICE-unix/1225,unix/<hostname>:/tmp/.ICE-unix/1225
SHELL=/bin/bash
SSH_AGENT_PID=1305
SSH_AUTH_SOCK=/run/user/1000/keyring/ssh
TZ=:/etc/localtime
USER=<user>
USERNAME=<user>
WINDOWPATH=7
XAUTHORITY=<home>/.Xauthority
XDG_CONFIG_DIRS=/etc/xdg/xdg-cinnamon:/etc/xdg
XDG_CURRENT_DESKTOP=X-Cinnamon
XDG_DATA_DIRS=/usr/share/cinnamon:/usr/share/gnome:/usr/local/share/:/usr/share/:/usr/share/mdm/
XDG_RUNTIME_DIR=/run/user/1000
XDG_SEAT=seat0
XDG_SESSION_COOKIE=2a5d5f96ef9147c0b35535562b32d0ff-1484727651.178712-1895066874
XDG_SESSION_DESKTOP=cinnamon
XDG_SESSION_ID=c1
XDG_VTNR=7
XMODIFIERS=@im=none

Quanto ai componenti, non ne ho aggiunti rispetto a quelli di default:
gb
gb.form
gb.gui
gb.image



Titolo: Re:Problema con evento KeyPress
Inserito da: Gianluigi - 18 Gennaio 2017, 10:59:52
Ciao ben ritrovato,  :D

devi sapere che per far funzionare bene Gambas è necessario creare progetti per le librerie QT.
Quindi devi installare QT Configuration segui questi suggerimenti (http://www.gambas-it.org/smf/index.php?topic=5230.msg39431#msg39431) leggi bene tutto e poi cimentati se hai dei problemi chiedi pure.

Una volta fatto questo ricrei il tuo progetto non con gb.gui ma seguendo questa procedura:

Nuovo progetto
Dalla finestra Nuovo progetto scegli QT application e clicchi su Seguente
Quindi inserisci (Seguente) e nomini il progetto come vuoi e dai OK

Sappimi dire
 :ciao:

P.S. Tu hai Mint e non so se i comandi da terminale per i Too tip funzionano regolati un po in base a quanto ho scritto per i desktop Unity e XFCE
Titolo: Re:Problema con evento KeyPress
Inserito da: pimpoli - 18 Gennaio 2017, 13:54:56
Allora, Gianluigi... innanzitutto grazie; ho provato a leggere quello che mi hai postato ed ho visto il link ma, francamente, non ci ho capito gran che. Però mi hai dato l'imbeccata giusta: non ho installato QT Configuration (penso tu volessi dire qt4-qtconfig, ma io sul mio LinuxMint ho le QT5), ma semplicemente ho aperto un progetto QT Application, ho copiato il codice del Keypress, creato l'eseguibile e tutto funziona!
La mia domanda ora è: su un progetto già esistente, se io sostituisco gb.gui con gb.gui.qt, perdo qualcosa, a livello di componenti che ho messo nel form (textbox, listview, pulsanti, ecc)?
Titolo: Re:Problema con evento KeyPress
Inserito da: Gianluigi - 18 Gennaio 2017, 14:04:31
Se fai così va benissimo, e non perdi niente (leggi il post successivo)

Anche io ho le QT5 su Ubuntu, ma anche le QT4 e QT Configuration l'ho installato e mi funziona.
Però ti conviene aspettare il parere di Vuott che lui ha Mint come te e lo sa senz'altro.
Se fai la prova per i tooltip e cioè provi a cercare nell'IDE di Gambas una parola che non esiste riesci a leggere il Balloon di risposta?

Noto solo ora (scusa) che hai installata una versione vecchia di Gambas (3.8.4).
Se non hai particolari ragioni per avere quella versione io ti consiglierei di installarti l'ultima stabile la 3.9.2.

È anche scritto nella discussione che ti ho indicato ma conviene ripetere i passaggi:

Se lo vuoi fare per prima cosa devi eliminare la tua attuale versione di Gambas:
Apri il terminale e digita (ricopia) il seguente comando che darai come utente user ($):
Attenzione: Come precauzione ti conviene salvare facendone il backup i progetti Gambas da te fatti.
La password sembra che il terminale non la prenda tu digitala tutta precisa e poi da invio.

Codice: [Seleziona]
sudo apt-get –purge remove gambas3*

Quindi come suggerito dalla documentazione (http://gambaswiki.org/wiki/install/ubuntu) di Gambas dai i seguenti comandi:
Codice: [Seleziona]
sudo add-apt-repository ppa:gambas-team/gambas3
sudo apt-get update
sudo apt-get install gambas3
Titolo: Re:Problema con evento KeyPress
Inserito da: Gianluigi - 18 Gennaio 2017, 14:12:07

La mia domanda ora è: su un progetto già esistente, se io sostituisco gb.gui con gb.gui.qt, perdo qualcosa, a livello di componenti che ho messo nel form (textbox, listview, pulsanti, ecc)?

Per essere precisi potresti avere dei comportamenti differenti (colore di fondo, trasparenze ecc.) in quanto per trattare in modo soddisfacente con le librerie qt in ambiente gtk occorre QT Configuration (qt4-qtconfig) ma come detto conviene attendere il parere di Vuott.
Titolo: Re:Problema con evento KeyPress
Inserito da: vuott - 18 Gennaio 2017, 15:40:01
Non serve il mio parere: in questi casi si fa la prova.

Basta aprire il proprio progetto e salvarlo con un altro nome, quindi fare il cambio del componente grafico e verificare.  :-\
Titolo: Re:Problema con evento KeyPress
Inserito da: Gianluigi - 18 Gennaio 2017, 15:44:42
Riguardo ai progetti Ok, ma riguardo a QT Configuration tu lo hai installato nell'ultimo Mint? Oppure in Mint non funziona più?

 :ciao:
Titolo: Re:Problema con evento KeyPress
Inserito da: vuott - 18 Gennaio 2017, 17:26:14
...a riguardo a QT Configuration tu lo hai installato nell'ultimo Mint?
Sì, l'ho installato sul portatile con Mint 18.1 .
Titolo: Re:Problema con evento KeyPress
Inserito da: pimpoli - 18 Gennaio 2017, 18:05:25
Allora, per quanto riguarda i tooltip, io li vedo normalmente... intendi questo (vedi allegato... non so come postarlo in altra maniera...)?
Per quanto riguarda il PPA, lo usavo già qualche tempo fa, poi mi aveva dato dei problemi con gli aggiornamenti e non l'ho più usato.
Non ho capito perché dovrei usare qt-configuration...
Titolo: Re:Problema con evento KeyPress
Inserito da: Gianluigi - 18 Gennaio 2017, 18:16:24
Allora, per quanto riguarda i tooltip, io li vedo normalmente... intendi questo (vedi allegato... non so come postarlo in altra maniera...)?
Per quanto riguarda il PPA, lo usavo già qualche tempo fa, poi mi aveva dato dei problemi con gli aggiornamenti e non l'ho più usato.
Non ho capito perché dovrei usare qt-configuration...

Come ti ho detto in precedenza, per esperienze varie, non solo mie, chi usa desktop gtk normalmente installa qt configuration.
Ma se tu non hai problemi prosegui tranquillamente così.
Titolo: Re:Problema con evento KeyPress
Inserito da: pimpoli - 18 Gennaio 2017, 18:48:12
si, ok, ma una volta installato qt-configuration, cosa dovrei farci?
Titolo: Re:Problema con evento KeyPress
Inserito da: Gianluigi - 18 Gennaio 2017, 19:24:16
Cambiare il tema.
Io ho cambiato il tema (scheda Appearance) in Cleanlooks (Fonts su Regular).
Titolo: Re:Problema con evento KeyPress
Inserito da: vuott - 18 Gennaio 2017, 23:24:04
Cleanlooks
Anch'io l'ho impostato su Cleanlooks , in modo particolare per evitare il problema di cui alla seguente discussione:

http://www.gambas-it.org/smf/index.php?topic=1906