Autore Topic: [RISOLTO] ComboBox.Popup: la riga selezionata non compare in ComboBox.text  (Letto 2695 volte)

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Ho trovato una sorpresa inaspettata, anche perchè non ho letto di altre esperienze del genere relativamente a G3. La sorpresa tanto inaspettata, quanto megativa è che scorrendo la combobox.list nella finestra di popup che si apre cliccando sul relativo pulsante della ComboBox ed, a sua volta, cliccando per selezionare la riga che si vuole fare apparire nella ComboBx.Text, non produce alcun effetto e la ComboBox.text mantiene sempre il primo elemento della ComboBox.List. La Documentazione (tasto F1) riporta il termine Popup fra i metodi. Nessun'altra spiegazione
Ma che significa?  :rolleyes:
« Ultima modifica: 11 Giugno 2012, 13:29:33 da Picavbg »
:ciao:

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.356
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: ComboBox.Popup: la riga selezionata non compare in ComboBox.text
« Risposta #1 il: 09 Aprile 2012, 19:35:12 »
Ma tu intendi la normale finestra a cascata della lista degli elementi quando clicchi sul ComboBox ?  ???

Io riesco a mostrare ogni elemento scelto della lista...


La Documentazione (tasto F1) riporta il termine Popup fra i metodi. Nessun'altra spiegazione
Ma che significa?  :rolleyes:
Riguardo al metodo "Popup" proverei questo simpatico esempio (inserire sul form un ComboBox con alcuni elementi nella propria lista, ed un Button):
Codice: gambas [Seleziona]

Public Sub Button1_Click()

  ComboBox1.Popup

End


cliccare quindi su Button1 per... vedere l'effetto che fa.
« Ultima modifica: 09 Aprile 2012, 19:50:06 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: ComboBox.Popup: la riga selezionata non compare in ComboBox.text
« Risposta #2 il: 09 Aprile 2012, 23:46:22 »
Il programma contiene già una situazione simile, tuttavia, anche se non mi sembra la via più pratica da percorrere, ho inserito la riga che mi hai proposto. La fnestra si apre come faceva anche prima, la posso scorrere, selezionare la riga che voglio, come puoi vedere dall'immagine allegata, ma non sente più il tasto Invio per la sua chiusura. Per farla sparire, l'unica cosa che posso fare è cliccare di nuovo sulla comboBox, ma a quel punto la ComboBox.Text, già modificata col  nuovo testo, ritorna a contenere il testo corrispondente al primo elemento della ComboBox.List.  ???
Se non fosse perché nessuno prima di me lo ha fatto presente, e non credo di essere il solo che usi le ComboBox in G3, direi che G3 contiene un'anomalia.
Ciao.
« Ultima modifica: 09 Aprile 2012, 23:52:52 da Picavbg »
:ciao:

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.356
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: ComboBox.Popup: la riga selezionata non compare in ComboBox.text
« Risposta #3 il: 10 Aprile 2012, 00:04:25 »
...anche se non mi sembra la via più pratica da percorrere, ho inserito la riga che mi hai proposto.
...mi era sembrato di capire che ponevi l'accento anche sul metodo Popup.  :-\


Ad ogni modo ho provato una situazione di questo genere:
Codice: gambas [Seleziona]

Public Sub Button1_Click()  ' cliccando sul Button...

'...faccio aprire - come prima- la finestra a cascata:
   ComboBox1.Popup

End


' manovro con le freccette  ↑↓  sulla tastiera
' e scelgo quale elemento della lista scegliere.
'Quindi premo Invio sulla tastiera:
Public Sub ComboBox1_Change()

   Print ComboBox1.Text

End


...coerentemente ottengo in console la scritta presente nell'elemento della lista prima scelto; e nel ComboBox l'elemento (Item) appunto prescelto.


...direi che G3 contiene un'anomalia.
A me... funziona  :-\
« Ultima modifica: 10 Aprile 2012, 00:14:40 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: ComboBox.Popup: la riga selezionata non compare in ComboBox.text
« Risposta #4 il: 10 Aprile 2012, 00:25:28 »
A me... funziona  :-\
Mi fa piacere che a te funzioni. Ciò vuol dire che ho qualcosa di anomalo nel mio ambiente G3.
Però, permettimi una piccola osservazione. Puoi benissimo cancellare la Sub ComboBox1_Click, perchè la ComboBox, come ben sai presenta alla sua destra un pulsantino, cliccando sul quale, la finestra di popup si apre senza ricorrere alla funzione  ComboBox1.Popup. É invece assolutamente necessaria per intercettare il/i tasto/i prescelti allo scopo.
:ciao:

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.356
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: ComboBox.Popup: la riga selezionata non compare in ComboBox.text
« Risposta #5 il: 10 Aprile 2012, 00:37:05 »
Però, permettimi una piccola osservazione. Puoi benissimo cancellare la Sub ComboBox1_Click, perchè la ComboBox, come ben sai presenta alla sua destra un pulsantino, cliccando sul quale, la finestra di popup si apre senza ricorrere alla funzione  ComboBox1.Popup.
...ma io non ho scritto la Sub ComboBox1_Click, bensì _Change. Inoltre, forse ho capito male dall'inizio, ma mi era parso  :-\ , infatti, che tu volessi da un lato far aprire la finestra a cascata del ComboBox con il metodo .Popup (...quindi da codice e non cliccando con il topastro sul ComboBox), dall'altro far apparire nel ComboBox l'elemento scelto dopo appunto l'apertura della finestra a cascata.

Posso aggiungere che, mantenendo quel tipo di evento (_Change() ) del ComboBox, e ponendo la proprietà ReadOnly del ComboBox a True, ho notato che, dopo aver fatto aprire la finestra a cascata, se premo sul tasto Invio della tastiera, la finestra, pur chiudendosi, e pur mostrandosi l'elemento prescelto della lista, l'evento non si scatena e nella console non sarà scritto alcunché. Al contrario sarà scritto il testo dell'elemento prescelto, se cambio l'evento da _Change() a _Click().
Quindi, ricapitolando, sembra proprio che, facendo chiudere la finestra del Combo con il tasto Invio della tastiera (come da esempio sopra esposto), affinché il processo possa passare nella routine con l'evento del ComboBox:
* se si imposta la proprietà ReadOnly del ComboBox a True, si dovrà porre l'evento _Click();
* se si imposta la proprietà ReadOnly del ComboBox a False, si potrà porre sia l'evento _Click() che _Change().
« Ultima modifica: 10 Aprile 2012, 10:35:45 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: ComboBox.Popup: la riga selezionata non compare in ComboBox.text
« Risposta #6 il: 10 Aprile 2012, 15:04:14 »
Scusa vuott, ma io credo che non si debba cercare a tutti i costi far funzionare G3, mettendo in secondo piano nel sottoscala la logica e l'efficacia del programma, programma che, fra l'altro è stato importato da G2, ambiente perfettamente funzionante sull'argomento di cui stiamo ragionando. Risolvere il problema si, ma senza scombinare  l'attuale funzionamento del programma.
Allora, riprendo dalla proprietà  ReadOnly: Io l'ho dichiarata TRUE, perchè non devo assolutamente consentire la digitazione di alcuno Voce; le voci sono già presenti nel DB e rispettano rigidissime regole di codici numerici ed agganci ad altre voci. Quindi, il mio concetto di base, relativamente alla ComboBox in cui ho il problema, è che l'utente finale non debba digitare alcuna voce, pertanto ReadOnly=TRUE.
L'evento _Change a me non serve perchè non ho niente da gestire in quell'evento.
L'evento  _Click esiste, ma mi serve solamente per valorizzare uno campo di tipo switch
Codice: [Seleziona]
Public Sub VoContMoDig_Click()
'-----------------------------
  b_SwVoCoMoDig = False
End
Per la caratteristica dell'oggetto ComboBox (la finestra popup si apre cliccando sul pulsantinio posto all'estremità destra della casella), il metodo Popup non necessita di essere richiamato dentro l'evento _Click.
L'evento Keypress esiste per permettere di utilizzare quasi costantemente la tastiera ed è così strutturato:

Codice: [Seleziona]
Public Sub VoContMoDig_KeyPress()
'-------------------------------------------------------------------------------------------------------------------------------------------------
  If b_SwVoCoMoDig = False Then   'se focus riabilitato
  QualeTasto = New CheTasto($StriMia) ' richiamo del modulo per limitare l'input ai soli dati numerici
  Select Case QualeTasto.$Como
            Case "Invio"
              MovDigOk.setFocus
            Case "Freccia-giù", "Pag-giù"
              VoContMoDig.Popup     'apre la finestra di popup per la sceleta/selzione di una riga diversa da quella visibile nella .Text corrente
    End Select
  Endif
End
Solo dentro l'evento Keypress viene utilizzato il metodo popup, che altrimenti, non si manifesterebbe.
Detto questo torniamo al problema:
Citazione
Una volta aperta la finestra di popup, sia che sia stata aperta dal click sul pulsantino a dx della casella, sia che sia stata aperta dal pressione del tasto "freccia-in-giù" o "pagina-giù", posso scorrerla in avanti o indietro, posso selezionare la voce che mi interessa ma non riesco a chiuderla con la pressione del tasto INVIO. Posso chiuderla solamente cliccando sulla casella ComboBox, però perdo la voce selezionata poco prima nella finestra popup e ritorna maldestramente visibile nella casella la prima voce della ComboBox.List.
Rispetto a G2 tale comportamento è assolutamente un malfunzionamento
Tu però mi dici che hai provato e, contrariamente a quanto accade a me, a te funziona. Allora mi sorge il dubbio che che l'anomalia sia presente nella fase di import da G2, per cui farò un prova pratica anch'io e ti saprò dire.  :hatecomputer:
 :ciao:
:ciao:

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.356
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: ComboBox.Popup: la riga selezionata non compare in ComboBox.text
« Risposta #7 il: 10 Aprile 2012, 15:57:46 »
Per la caratteristica dell'oggetto ComboBox (la finestra popup si apre cliccando sul pulsantinio posto all'estremità destra della casella), il metodo Popup non necessita di essere richiamato dentro l'evento _Click.
Ritengo di aver involontariamente generato una complicazione e confusione nella discussione, e me ne scuso, ahimé ! Con quegli esempi da me sopra esposti, io non li volevo suggerire, appunto, come soluzione per il tuo problema.

Ad ogni modo, cercando di restare il più possibilmente legato alla questione da te posta, non saprei  :-\ perché a te non viene mostrato nel ComboBox l'elemento dell'index prescelto.

 :ciao:
« Ultima modifica: 10 Aprile 2012, 16:00:08 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: ComboBox.Popup: la riga selezionata non compare in ComboBox.text
« Risposta #8 il: 11 Aprile 2012, 15:04:29 »
Infatti, è come avevo immaginato. Ho provato ad inserire un nuovo ComboBox ed ho fatto attenzione a settare la priprietà ReadOnly=True, in modo da rispettare i criteri di funzionamento occorenti a me. Ebbene, ho potuto constatare che, aprendo col click sul pulsantino alla sua dx e selezionando sulla finestra di popup uno qualsiasi degli elementi precaricati nella ComboBox.List, l'elemento selezionato viene copiato nella ComboBox.Text e la finestra di popup si chiude. Tutto ciò, come avrai capito, in termini pratici si traduce in: Funzionamento regolare:). Non contento ho ripetuto la prova con  ReadOnly=False ed anche così non ho incontrato anomalie.
Allora, stando così le cose che dovrei fare, per tutte le ComboBox contenute nel programma al momento della sua migrazione in G3? Ricancellarle e ridisegnarle tutte?
Ma possibile che sia capitato solo a me?  :o
Ciao,.
:ciao:

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: ComboBox.Popup: la riga selezionata non compare in ComboBox.text
« Risposta #9 il: 16 Aprile 2012, 13:48:07 »
A parte la transazione, se non ricordo male, c'è una voce del menu di Gambas che permette la conversione di tutte le form del progetto. Di solito con G2 si faceva ad ogni cambio release...

Ora non ho sottomano l'ide, ma puoi controllare se questa voce esiste ancora e usarla...
E' probabile che la funzione di conversione modifichi le impostazioni, magari errate, delle form, agendo anche sui file metacode (.form)

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: ComboBox.Popup: la riga selezionata non compare in ComboBox.text
« Risposta #10 il: 20 Aprile 2012, 14:48:28 »
A parte la transazione, se non ricordo male, c'è una voce del menu di Gambas che permette la conversione di tutte le form del progetto. Di solito con G2 si faceva ad ogni cambio release...

Ora non ho sottomano l'ide, ma puoi controllare se questa voce esiste ancora e usarla...
E' probabile che la funzione di conversione modifichi le impostazioni, magari errate, delle form, agendo anche sui file metacode (.form)
La funzione esiste ancora ed è quella che ho utilizzato io per eseguire la conversione del mio codice da G2 a G3:
Citazione
Avvio di Gambas-3 -> apri progetto -> selezione-file-/home/piero/mnt/dativari/Gambas2-23/Gambas_Progetti/VontabFam -> OK
nuova finestra: This is a Gambas 2.0 project. Do you want to convert?  Convert/Annulla
Selezione -> Convert
É stato avviato l'import sia del codice  che dei Form
Ma nonostante il mio comportamento, La prima delle ComboBox provate ha mostrato i problemi che ho enunciato. Posso provare a rieseguire l'import e ripetere l'esecuzione del programma.   :-\
Ciao.
:ciao:

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: ComboBox.Popup: la riga selezionata non compare in ComboBox.text
« Risposta #11 il: 06 Giugno 2012, 19:08:25 »
Rieccomi, ma ho dovuto sospendere il progetto ArchLinux dove sto approcciandomi con non poche difficoltà, soprattutto nell'integrazione dell'ambiente grafico. Comunque ho deciso di riprendere il mio programma per riconvertirlo in G3 dopo averne scaricato i sorgenti. Ho eseguito pertanto:
Codice: [Seleziona]
./reconf all
./config -C   
alla fine, però di detta fase ho ottenuto la seguente segnalazione di errore:
Citazione
||
|| THESE COMPONENTS ARE DISABLED:
|| - gb.gsl
||
Infatti la libreria gb.gsl non è stata generata. Non riesco a capire se possa andare avanti ugualmente o se invece essa rappresenti una gravità tale da compromettere, a fine comilazione ed installazione, il buon uso del mio nuovo ambiente Gambas.
Aspetto ragguagli.  :)
:ciao:

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.356
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: ComboBox.Popup: la riga selezionata non compare in ComboBox.text
« Risposta #12 il: 06 Giugno 2012, 19:44:43 »
Citazione
||
|| THESE COMPONENTS ARE DISABLED:
|| - gb.gsl
||
Infatti la libreria gb.gsl non è stata generata. Non riesco a capire se possa andare avanti ugualmente o se invece essa rappresenti una gravità tale da compromettere, a fine comilazione ed installazione, il buon uso del mio nuovo ambiente Gambas.
Aspetto ragguagli.  :)
Questo problema lo ho affrontato e risolto qui:
http://www.gambas-it.org/smf/index.php?topic=2132.0
 :ciao:
« 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: ComboBox.Popup: la riga selezionata non compare in ComboBox.text
« Risposta #13 il: 07 Giugno 2012, 23:00:35 »
@ vuott:
Si lo so. Ho già letto ,quella discussione, ma mentre nei repository di Ubuntu hai trovato libgsl0-dev, io non ho incontrato la stessa tua fortuna nei repository di Sabayon. Pertanto mi occorrerebbe un piccolo suggerimento sul percorso da eseguire, coi relativi comandi, per portare dentro i sorgenti di G3 del mio ambiente anche il componente gb.gsl. Ma, a proposito, ho cercato notizie sulla sua utilità, ma non sono riuscito a trovare alcunchè.
 :ciao:
:ciao:

Offline sotema

  • Maestro Gambero
  • ****
  • Post: 467
    • Mostra profilo
Re: ComboBox.Popup: la riga selezionata non compare in ComboBox.text
« Risposta #14 il: 08 Giugno 2012, 00:26:52 »
Ma, a proposito, ho cercato notizie sulla sua utilità, ma non sono riuscito a trovare alcunchè.
 :ciao:
il componente gb.gsl ti permette di utilizzare la libreria Gnu Scientific Library http://www.gnu.org/software/gsl/
Se non ti servono funzioni matematiche di quella libreria puoi lasciare disabilitato il componente, senza che questo infici sul funzionamento di Gambas e dei tuoi progetti.
Ad ogni modo prova a fare una ricerca nei pacchetti con: sci-libs/gsl (se la memoria non mi inganna)
L'uomo ha inventato la bomba atomica, ma nessun topo al mondo costruirebbe una trappola per topi.
Albert Einstein