Autore Topic: piccolo aiuto sui combobox e listbox  (Letto 4798 volte)

Offline fly_1234

  • Gamberetto
  • *
  • Post: 9
    • Mostra profilo
piccolo aiuto sui combobox e listbox
« il: 06 Luglio 2012, 23:40:29 »
avrei un piccolo problema nel visualizzare un array 2d in una combobox o listbox e premetto che sono un neofita sia di gambas che nella programmazione...dopo aver scritto combobox.list=prova dove prova è un array 2d mi viene visualizzata una unica colonna con tutti i dati di prova...ho letto la guida ma forse non abbastanza ma non riesco ad impostare una visualizzazione corretta delle colonne...
« Ultima modifica: 07 Luglio 2012, 00:01:32 da fly_1234 »

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.720
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: piccolo aiuto sui combobox e listbox
« Risposta #1 il: 07 Luglio 2012, 01:39:55 »
avrei un piccolo problema nel visualizzare un array 2d in una combobox...
:ciao:
Questo tuo messaggio mi ha incuriosito: non avevo mai pensato a far gestire un array pluridimensionato da un ComboBox.

Allora ho fatto una cosa del genere (non so se è sostanzialmente analogo a quello tuo):
Codice: gambas [Seleziona]

Public Sub Form_Open()

 Dim a As New String[2, 2]

  a[0, 0] = "alibaba"
  a[1, 0] = "simbad"

  a[0, 1] = "aladino"
  a[1, 1] = "abukir"

  ComboBox1.List = a

End


...ed infatti nel Combo viene mostrata visivamente una sola unica lista-colonna, però la disposizione è sulla base del primo parametro dell'array:
alibaba
aladino
simbad
abukir


Sarebbe interessante fare una prova per vedere se in questo caso il ComboBox ha una capacità maggiore di contenere elementi.
« Ultima modifica: 31 Luglio 2012, 20:32:47 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: piccolo aiuto sui combobox e listbox
« Risposta #2 il: 07 Luglio 2012, 02:33:42 »
In effetti è strano, e devo dire che avevo tentato di creare un qualcosa a livello addirittura di oggetti, ma le ComboBox e le ListBox non pare lo permettano.
Il fatto che comunque presentino un valore da un array pluridimensionale potrebbe anche essere un bug...

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: piccolo aiuto sui combobox e listbox
« Risposta #3 il: 07 Luglio 2012, 19:36:30 »
Che io ricordi le ComboBox e le ListBox (anche in ambiente VisualBasic) permettono solamente la gestione di array ad una sola dimensione. L'ostacolo si può superare benissimo riunendo le due sottodimesioni (a[n,0] e a[n,1]) in un 'unica stringa, aggiungendovi magari un carattere sparatore come ".(punto) ,(virgola) ;(punto e virgola) :(due punti) ..., per  riconoscerle e trattarle adeguatamente dopo
Codice: gambas [Seleziona]
Dim a As New String[2]  
a[0] = "alibaba.aladino" 
a[1] = "simbad.abukir" 

 :ciao:
:ciao:

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.720
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: piccolo aiuto sui combobox e listbox
« Risposta #4 il: 07 Luglio 2012, 19:49:15 »
Che io ricordi le ComboBox e le ListBox (anche in ambiente VisualBasic) permettono solamente la gestione di array ad una sola dimensione. L'ostacolo si può superare benissimo riunendo le due sottodimesioni (a[n,0] e a[n,1]) in un 'unica stringa, aggiungendovi magari un carattere sparatore come ".(punto) ,(virgola) ;(punto e virgola) :(due punti) ..., per  riconoscerle e trattarle adeguatamente dopo
Codice: gambas [Seleziona]
Dim a As New String[2]  
a[0] = "alibaba.aladino" 
a[1] = "simbad.abukir" 

 :ciao:
.......ma non è che hai semplicemente scritto due normali stringhe contenenti nel mezzo il carattere del punto???
« 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 fly_1234

  • Gamberetto
  • *
  • Post: 9
    • Mostra profilo
Re: piccolo aiuto sui combobox e listbox
« Risposta #5 il: 07 Luglio 2012, 22:43:33 »
quindi sembra chiaro che i combobox e i listbox non si possono utilizzare per rappresentare array2d. Cosa si può utilizzare?

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.720
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: piccolo aiuto sui combobox e listbox
« Risposta #6 il: 07 Luglio 2012, 23:17:50 »
Scusa, vorrei capire meglio.
Come - diciamo - vorresti che fossero rappresentati ? Cioè, come visivamente vorresti che fossero mostrati ?
« 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 fly_1234

  • Gamberetto
  • *
  • Post: 9
    • Mostra profilo
Re: piccolo aiuto sui combobox e listbox
« Risposta #7 il: 07 Luglio 2012, 23:34:32 »
leggo da un database record[6,11] e vorrei visualizzarli uno alla volta nel form in combobox o listbox e non so come fare...cosa altro potrei utilizzare?

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.720
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: piccolo aiuto sui combobox e listbox
« Risposta #8 il: 07 Luglio 2012, 23:42:32 »
...ma all'interno di un elemento di un array pluridimensionale non v'è comunque un solo valore ?  ???
« 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: piccolo aiuto sui combobox e listbox
« Risposta #9 il: 07 Luglio 2012, 23:45:11 »
Che io ricordi le ComboBox e le ListBox (anche in ambiente VisualBasic) permettono solamente la gestione di array ad una sola dimensione. L'ostacolo si può superare benissimo riunendo le due sottodimesioni (a[n,0] e a[n,1]) in un 'unica stringa, aggiungendovi magari un carattere sparatore come ".(punto) ,(virgola) ;(punto e virgola) :(due punti) ..., per  riconoscerle e trattarle adeguatamente dopo
Codice: gambas [Seleziona]
Dim a As New String[2]  
a[0] = "alibaba.aladino" 
a[1] = "simbad.abukir" 

 :ciao:
.......ma non è che hai semplicemente scritto due normali stringhe contenenti nel mezzo il carattere del punto???

Il punto o punto-e-virgola o due-punti o virgola sono solamente un esempio del crt di separazione logica fra la prima  e la seconda dimensione dello stesso elemento di ComboBox(ListBox).List. La sua presenza dovrebbe rendere più facile un'eventuale successiva ricerca o riconoscimento della stringa puntata da ComboBox(ListBox).List.Index, attraverso un insieme di istruzioni come le seguenti:
Codice: [Seleziona]
DIM $ArrayMio AS NEW String[] 
Dim i as Integer
Dim n as Integer

n=ComboBox.count-1
For i = 0 to n
   $ArrayMio.add= Split(ComboBox.List[i],"." )         ' se il separatore fra  la prima  e la seconda dimensione della ComboBox.List è rappresentata dal "."                                    
Next
Un'altra soluzione potrebbe esser l'utilizzo dell'istruzione "Instr":
Codice: [Seleziona]
Dim i as Integer
Dim iLun1 as Integer
Dim iLun2 as Integer
Dim k as Integer
Dim n as Integer
Dim $StriMia as String
Dim $ArrayMio As New String[n, 2]  

n=ComboBox.count-1
For i = 0 to n
    k=Instr(ComboBox.List[i])
    iLun1=len(ComboBox.List[i]-k
    iLun2=len(ComboBox.List[i]-(iLun1+1))
    ArrayMio[i,0]=Left(ComboBox.List[i],iLun1)
    ArrayMio[i,1]=Right(ComboBox.List[i],iLun2)
Next

Spero di essere riuscito a spiegare meglio quello che non ero riuscito a fare in maniera assolutamente sintetica. ;D
 :ciao:
:ciao:

Offline fly_1234

  • Gamberetto
  • *
  • Post: 9
    • Mostra profilo
Re: piccolo aiuto sui combobox e listbox
« Risposta #10 il: 07 Luglio 2012, 23:55:32 »
i record contengono diversi campi di numeri (integer), vorrei leggere il record[6,11] e passarlo sul form in una specie di griglia...
Picavbg ho letto i listati ma non ho capito se la soluzione può essere adatta a come sopra...

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.720
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: piccolo aiuto sui combobox e listbox
« Risposta #11 il: 07 Luglio 2012, 23:58:31 »
La sua presenza dovrebbe rendere più facile un'eventuale successiva ricerca o riconoscimento della stringa puntata da ComboBox(ListBox).List.Index, attraverso un insieme di istruzioni
 :ciao:
Adesso ho compreso il tuo intento.

 :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 vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.720
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: piccolo aiuto sui combobox e listbox
« Risposta #12 il: 08 Luglio 2012, 00:00:57 »
... vorrei leggere il record[6,11] e passarlo sul form in una specie di griglia...

Scusami, ma lo specifico record[6,11] non contiene un solo valore ?
« 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 fly_1234

  • Gamberetto
  • *
  • Post: 9
    • Mostra profilo
Re: piccolo aiuto sui combobox e listbox
« Risposta #13 il: 08 Luglio 2012, 00:12:49 »
no sono valori diversi...

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.720
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: piccolo aiuto sui combobox e listbox
« Risposta #14 il: 08 Luglio 2012, 00:16:36 »
no sono valori diversi...
Scusami, pensavo ti riferissi ad uno specifico elemento dell'array bidimensionale.

Allora mi astengo, mi spiace, non ho mai trattato  :-X con i database record.
Pensavo che volessi operare con i classici array.
« Ultima modifica: 08 Luglio 2012, 00:38:46 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. »