Gambas-it

Archivi (sola lettura) => Programmazione (Gambas 2) => Topic aperto da: tornu - 05 Aprile 2009, 20:29:41

Titolo: ListView
Inserito da: tornu - 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.
Titolo: Re: ListView
Inserito da: leo72 - 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 ;-)
Titolo: Re: ListView
Inserito da: Ceskho - 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..
Titolo: Re: ListView
Inserito da: leo72 - 06 Aprile 2009, 11:29:02
@Cespho (:-) ):
Nella doc ufficiale si legge che i 2 parametri Chiave e Testo sono obbligatori.
Titolo: Re: ListView
Inserito da: Ceskho - 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...
Titolo: Re: ListView
Inserito da: tornu - 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?
Titolo: Re: ListView
Inserito da: Ceskho - 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....
Titolo: Re: ListView
Inserito da: leo72 - 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).
Titolo: Re: ListView
Inserito da: Ceskho - 18 Aprile 2009, 10:43:46
Ah beh...così già ha più senso...