Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    42

    [delphi] gestione tlistview

    grr....queste tlistview sono complicatissime da gestire

    mi dite un pò come faccio a:

    -come aggiungere/eliminare il testo a 3 colonne di una stessa tlistview?

    -come eventualmente salvare sul file tutto il testo di queste?

    -fare uno ShowMessage che visualizzi il testo di una colonna selezionata (supponiamo 3 colonne)

    grazie

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    TListView & friends...

    Vero, TreeView e ListView sono controlli visuali abbastanza complessi, ma la loro gestione in Delphi è di gran lunga più semplice che in altri linguaggi.

    Puoi definire le colonne, nonchè aggiungere nuovi elementi alla ListView sia a designtime che a runtime. Ciascun elemento della ListView viene reso disponibile attraverso la proprietà Items ed è di tipo TListItem. Questo oggetto mette a disposizione del programmatore diverse proprietà, tra cui Caption, che rappresenta il testo visualizzato sull'elemento, e SubItems, che contiene invece i testi da visualizzare nelle restanti colonne in cui è suddiviso il controllo ListView.

    La proprietà SubItems è di tipo TStrings, un tipo astratto che viene utilizzato in Delphi per rappresentare genericamente una lista di stringhe; lo troviamo ad esempio anche nella proprietà Lines del controllo TMemo.
    Nel caso del ListItem, ciascuna linea di testo corrisponde ad una diversa colonna della ListView in cui tale testo verrà rappresentato in corrispondenza dell'elemento a cui è associato.

    Supponiamo di voler visualizzare ad esempio un elemento con etichetta "Pippo" e sottoelementi (3) "Qui", "Quo" e "Qua".
    codice:
    with ListView1.Items.Add do
    begin
      Caption := 'Pippo';
      SubItems.Add('Qui');
      SubItems.Add('Quo');
      SubItems.Add('Qua');
    end;
    (il codice l'ho scritto a memoria, quindi non è verificato ma riportato solo a puro titolo esemplificativo)
    Attraverso le proprietà dell'oggetto ListItem.SubItems possiamo rileggere e manipolare i contenuti delle colonne.

    Per maggiori informazioni, prova a consultare anche la Guida in linea di Delphi; solitamente ci sono degli esempi già pronti.

    Ricordati di impostare la proprietà ViewStyle del controllo ListView a vsReport se vuoi vedere anche i dati delle colonne.

    Spero di essermi espresso con sufficiente chiarezza.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    42

    Re: TListView & friends...

    grazie..come faccio però a spostare gli item?

    cioè..supponiamo che abbia due colonne con 5 righe

    1caption 1subitem
    2caption 2subitem
    3caption 3subitem
    4caption 4subitem
    5caption 5subitem

    Se volessi spostare il 2 al 4 oppure il 5 al 1 etc etc come faccio?

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Ordinamento ListView...

    Non sono a conoscenza di un metodo per ottenere ciò che vuoi.

    Mi spiego: di solito non si tende a spostare o a definire esattamente la posizione di un elemento all'interno del controllo ListView. Nella maggior parte dei casi, gli elementi di una ListView rappresentano la visualizzazione di qualche entità (record di tabella, oggetto in memoria), pertanto la loro posizione in fase di caricamento viene prelevata già in modo ordinato.

    Se devo cambiare l'ordine di un elemento, solitamente ricarico i dati nella ListView oppure (soluzione migliore) associo un oggetto qualunque all'elemento ListItem tramite la proprietà Data e indico alla ListView di provvedere ad un ordinamento personalizzato tramite la proprietà SortType. La ListView incorpora eventi che permettono di confrontare ciascun elemento con gli altri per determinare quale dei due è maggiore o minore e quindi quale dei due deve essere visualizzato prima... (OnCompare).

    Spiegami a cosa ti serve la visualizzazione, magari posso darti un'indicazione decisiva.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    42
    l'utente aggiunge mano mano dei dati alla tlistview in un ordine quindi suo

    mettiamo il caso voglia spostare che so il terzo elemento che ha aggiunto al primo, come può fare?


    è vero che con i database sarebbe tutto molto più facile?

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    42
    altra domanda, è possibile salvare sul testo il contenuto di una tlistview?

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Il tuo problema nasce dal fatto che l'unico "luogo informatico" in cui salvi i dati è la ListView...che non è adatta a quello scopo.
    Usa un supporto consono al mantenimento dei dati inseriti (una lista di oggetti, un database, ecc.) e carica ogni volta i dati leggendoli nell'ordine desiderato.

    Ad ogni modo, per il tuo scopo sarebbe più adatto l'uso di un database.

    Non c'è un modo diretto per salvare i dati della ListView in un file.
    Puoi usare la classe TStringList per definire il testo da salvare con il metodo SaveToFile, ma devi stabilire autonomamente le convenzioni di formato (il modo in cui deve essere organizzato il file di testo per la lettura e la scrittura delle informazioni devi deciderlo tu).

    Credo che tu stia facendo un uso improprio delle ListView, nel senso che potresti adottare un database e usare i Data Control per risparmiarti tutte le operazioni che cerchi di applicare alla ListView. Ad ogni controllo, il suo scopo!

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    42
    eh ho visto

    buttiamoci sul database

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.