PDA

Visualizza la versione completa : [DELPHI] TListBox, TListView e inserimento di nuovi elementi


array81
03-03-2009, 12:37
Non sono pratico di Delphi e mi serve un piccolo chiamento.

Ho scaricato un demo fatto in delphi (con sorgenti) in cui in una TListBox veniva usata la funzione addItem() per aggiungere un elemento.
Se non ho capito male diversamente da quanto facevo io ovvero da aggiungere un elemento attaverso la proprietà Items[], utlizzando addItem() si aggiunge un elemento a cui si associa un oggetto che successivamente si può utilizzare per vari scopi.
Ora vorrei fare la stessa cosa con altri componenti ad esempio TListView, TTreeView ed altri a pagamento simili. Tuttivia utilizzare la funzione addItem() con questi componenti è piuttosto limitato, per esempio se uso tale funzione con un TListView posso definire solo la proprietà Caption dell'elemento stesso ma non i subitems e l'immagine da associare all'emento stesso.

Qualcuno mi può aiutarmi?

maffio
03-03-2009, 15:08
Puoi utilizzare la TListview in questo modo

Lista := ListView.Items.Add;
Lista.Caption := <valore>;
Lista.SubItems.Add(<valore>);
Lista.SubItems.Add(<valore>);
Lista.SubItems.Add(<valore>);
Lista.SubItems.Add(<valore>);
Lista.SubItems.Add(<valore>);

Lista.ImageIndex := 1; (devi però prima associare la proprietà smallimages)

array81
03-03-2009, 18:13
Infatti, io sono solito utilizzare proprio un codice come il tuo per aggiungere un elemento ad un TListView. Il problema è che in questo modo non posso associare all'elemnto un oggetto. Nel caso della funzione addItem(caption: string; object: TObject) invece posso associare un oggetto al nuovo elemento ma posso aggiungere solo la Caption.
Potrei aggiungere i subitems e il riferimento all'immagine in un secondo momento ovviamente, però mi chieso se non si possa fare tutto insieme ovvero utilizzare il codice che tu mi hai suggerito ed al tempo stesso alla variabile Lista aggiungere il rifermento ad un oggetto.

Grazie.

alka
24-03-2009, 13:15
Originariamente inviato da array81
Potrei aggiungere i subitems e il riferimento all'immagine in un secondo momento ovviamente, però mi chieso se non si possa fare tutto insieme ovvero utilizzare il codice che tu mi hai suggerito ed al tempo stesso alla variabile Lista aggiungere il rifermento ad un oggetto.

Che io sappia, non è possibile fare ciò che chiedi, ma penso che sia anche logicamente corretto, in quanto altrimenti si dovrebbero creare metodi che hanno un numero elevato di parametri, compromettendone la leggibilità, oppure dover inserire sempre nuovi metodi in overload con le nuove proprietà, rischiando peraltro di introdurre delle incompatibilità nel codice nella migrazione da una versione all'altra di Delphi.

Onestamente, non capisco quale sia il problema di dover svolgere l'operazione in due fasi, cioè inserendo prima l'elemento con le sue caratteristiche principali e, in un secondo momento, definire quelle che si possono considerare "caratteristiche avanzate" o comunque più estese.

Ciao! :ciauz:

Loading