Autore Topic: Selezionare un item di Combobox.list da codice  (Letto 2588 volte)

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Selezionare un item di Combobox.list da codice
« il: 23 Gennaio 2009, 00:53:58 »
Non sono riuscito a trovare nel forum, né nella guida "A Beginner's Guide to Gambas" la soluzione del mio problema:
Per immettere la data della giornata in cui inserire le mie registrazioni da utente, ho pensato di costruire una Form con tre Combobox (read-only) e due pulsanti per annullare o confermare la selezione operata nelle Combobox.
Le Combobox dispongono ciascuna della propria "list" di item per la scelta del giorno, del mese e dell'anno. Solo che già in fase di "show" della form vorrei  mostrare le combiobox con la selezione già preparata di giorno,mese,anno relativi alla data di accensione del sistema, in modo da realizzare una preimpostazione ordinaria. Ho già preparato i campi dove ho immesso le informazioni prese dalla data di sitema con le istruzioni
Codice: [Seleziona]

DataOggi=Date
Giorno = Day(DataOggi)
Mese = Month(DataOggi)
Anno = Year(DataOggi)


Ora, dovrei solamente selezionare da codice gli item corrispondenti nelle relative "list". Leggendo in un post un suggerimento di md9327 (.selection 'ritorna un oggetto con le informazioni necessarie), avevo intuito che l'istruzione suggerita potesse funzionare anche per selezionare l'item desiderato e, partendo da codesto concetto, ho scritto:
Codice: [Seleziona]

 ComboGiorno.selection(Giorno)

ma mi sono sbagliato, perché ho dovuto incassare l'errore "Not a function" in esecuzione e sono rimasto a guardare... :roll:
Poichè non credo che sia impossibile comandare una simile operazione da codice, spero che mi possiate dare una spinta...rella. :-)

 :ciao:  :ciao:
:ciao:

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: Selezionare un item di Combobox.list da codice
« Risposta #1 il: 23 Gennaio 2009, 11:10:21 »
Devi usare la proprietà .Index().
Sapendo che la numerazione degli elementi di qualunque oggetto in Gambas inizia da 0, se hai ComboGiorno che contiene i giorni da 1 a 31, per selezionare il 12 devi semplicemente scrivere:
Codice: [Seleziona]

ComboGiorno.Index(Giorno-1)
Visita il mio sito personale: http://www.leonardomiliani.com

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Selezionare un item di Combobox.list da codice
« Risposta #2 il: 23 Gennaio 2009, 13:03:59 »
L'altra alternativa è impostare la proprietà .Text con la stringa corrispondente al giorno (o mese, o anno).
Se, per ipotesi, hai riempito l'elenco dei giorni, con stringhe formattate a due caratteri (es. primo giorno = "01"), basta che imposti la proprietà di cui sopra in:

Codice: [Seleziona]

.Text = "01"


oppure, direttamente dalla data di sistema:

Codice: [Seleziona]

.Text = Format(Day(Now()), "00")


Comunque, dato che si tratta in definitiva di numeri ben definiti, l'uso della proprità .Index resta più semplice; 'importante è che la lista nella combo sia ordinata in modo corretto.

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: Selezionare un item di Combobox.list da codice
« Risposta #3 il: 23 Gennaio 2009, 17:46:08 »
Citazione

md9327 ha scritto:
L'altra alternativa è impostare la proprietà .Text con la stringa corrispondente al giorno (o mese, o anno).
Se, per ipotesi, hai riempito l'elenco dei giorni, con stringhe formattate a due caratteri (es. primo giorno = "01"), basta che imposti la proprietà di cui sopra in:
Codice: [Seleziona]

.Text = "01"


Comunque, dato che si tratta in definitiva di numeri ben definiti, l'uso della proprità .Index resta più semplice; 'importante è che la lista nella combo sia ordinata in modo corretto.


Ho provato sia il suggerimento di Leo72 che il tuo 1°. Il risultato é il seguente:
Codice: [Seleziona]

combo_giorno.Text = Str$(Giorno)     ->> F U N Z I O N A !

mentre
Codice: [Seleziona]

combo_giorno.Index(Giorno-1)     ->>  produce l'errore  "Not an object"


Pur avendo superato l'ostacolo col Vostro aiuto, mi pare necessario capire perché il richiamo della proprietà .index non debba funzionare. :-o
 :ciao:
:ciao:

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: Selezionare un item di Combobox.list da codice
« Risposta #4 il: 23 Gennaio 2009, 19:39:26 »
se non sbaglio combobox1.index puo solo ritornare l' indice della selezione, non può essere usato per impostare la posizione del testo selezionato

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Selezionare un item di Combobox.list da codice
« Risposta #5 il: 23 Gennaio 2009, 21:40:11 »
combo_giorno.Index = Giorno - 1

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: Selezionare un item di Combobox.list da codice
« Risposta #6 il: 23 Gennaio 2009, 23:32:57 »
Sì, è con l'uguale. Scusami, ma l'avevo scritto a mente.
Visita il mio sito personale: http://www.leonardomiliani.com

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: Selezionare un item di Combobox.list da codice
« Risposta #7 il: 24 Gennaio 2009, 09:07:16 »
Codice: [Seleziona]

combo_giorno.index = Giorno-1     ->> ha funzionato!


Grazie; ho acquisito una nuova picccola esperienza. :-D

 :ciao:
:ciao:

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Selezionare un item di Combobox.list da codice
« Risposta #8 il: 25 Gennaio 2009, 01:25:45 »
leo si sbaglia sempre con le parentesi... mannaggia!

:-) :-) :-)

Perdonami leo, non lo faccio più! ihihihih

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: Selezionare un item di Combobox.list da codice
« Risposta #9 il: 25 Gennaio 2009, 15:18:50 »
:nulla:
Visita il mio sito personale: http://www.leonardomiliani.com