Autore Topic: ListView  (Letto 1249 volte)

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
ListView
« il: 05 Aprile 2009, 20:29:41 »
Buona sera,
volevo sottoporvi una "semplice" domanda, secondo voi cosa c'è di sbagliato (se c'è qualcosa di sbagliato) in questo codice
Codice: [Seleziona]

PUBLIC SUB form_open()
  ListView.Add("item1", "item2")
END


all'esecuzione la ListView mi visualizza solo item2.
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: ListView
« Risposta #1 il: 05 Aprile 2009, 23:12:26 »
Nulla, semplicemente è il suo modo di comportarsi.
Il metodo Add() ha la seguente sintassi di base
Codice: [Seleziona]

ListView.Add(Chiave, Testo)

Il primo parametro, Chiave, specifica la chiave univoca con la quale verrà identificato il parametro che stai passando alla lista: è usato per indirizzare la lista stessa. Il secondo parametro, Testo, sarà il parametro che verrà visualizzato dalla lista.

Diciamo, quindi, che ne stai facendo un uso errato ;-)
Visita il mio sito personale: http://www.leonardomiliani.com

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: ListView
« Risposta #2 il: 06 Aprile 2009, 00:02:49 »
In pratica l'errore sta nel fatto che deve essere usato un comando listview.add per ogni ogetto (item) che vuoi aggiungere. Quindi nel tuo caso il codice diventa:


Codice: [Seleziona]
PUBLIC SUB form_open() 
  ListView1.Add(0, "Item1")
  ListView1.Add(1, "Item2")
END


Come ha detto *eo72 (:-P) il valore intero Chiave inizializza e restituisce il "posto" in cui porre l'elemento..se inverti i due valori Item2 avrà una posizione più alta di item1......non vorrei dire una castroneria ma chiave può essere omesso e ci pensa Gambas a porli in ordine di come vengono restituiti nel codice..

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: ListView
« Risposta #3 il: 06 Aprile 2009, 11:29:02 »
@Cespho (:-) ):
Nella doc ufficiale si legge che i 2 parametri Chiave e Testo sono obbligatori.
Visita il mio sito personale: http://www.leonardomiliani.com

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: ListView
« Risposta #4 il: 08 Aprile 2009, 14:20:57 »
Mi pare una sorta di presa in giro dato che la struttura delle combobox è simile e il parametro chiave non è obbligatorio...poi vabbè si vede che chi l'ha programmato così ha avuto questa preferenza...

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re: ListView
« Risposta #5 il: 17 Aprile 2009, 20:57:30 »
Grazie per le spiegazioni.

Citazione

Ceskho ha scritto:
Mi pare una sorta di presa in giro dato che la struttura delle combobox è simile e il parametro chiave non è obbligatorio...poi vabbè si vede che chi l'ha programmato così ha avuto questa preferenza...


Perchè una presa in giro?
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: ListView
« Risposta #6 il: 17 Aprile 2009, 22:21:04 »
Perchè così costringi il programmatore a sistema gli elementi della lista in un dato ordine...invece secondo me, come accade nelle combobox, gli elementi dovrebbero essere sistemati solo se si vuole e non per forza....

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: ListView
« Risposta #7 il: 18 Aprile 2009, 10:30:03 »
Non capisco questo:
Citazione

Perchè così costringi il programmatore a sistema gli elementi della lista in un dato ordine

La ListView non ordina i suoi elementi a meno che tu non imposti Sorted su True. Come inserisci gli elementi e come poi li ritrovi nella ListView.

Io non mi sono mai posto il problema della chiave, che è solo un metadato necessario al componente per gestire alcune sue cose (ad esempio, in fase di inserimento puoi scegliere che un nuovo dato sia inserito dopo un altro già presente invece che nella posizione di default, cioè in fondo alla lista). Quindi, quando inserisco il dato semplicemente ripeto 2 volte la variabile che contiene il mio dato. Es.: ListView1.Add (Stringa, Stringa).
Visita il mio sito personale: http://www.leonardomiliani.com

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: ListView
« Risposta #8 il: 18 Aprile 2009, 10:43:46 »
Ah beh...così già ha più senso...