Uso del CheckBoxes in DataListView

Forum dedicato ai programmatori di X# in lingua italiana – Italian language forum

Moderator: wriedmann

Post Reply
User avatar
claudiocarletta
Posts: 101
Joined: Sat Sep 05, 2020 8:56 am

Uso del CheckBoxes in DataListView

Post by claudiocarletta »

Salve a tutti,
Ho visto con piacere che in una DataListView si può aggiungere una colonna di CheckBox a sinistra modificando la proprietà CheckBoxes a true.
Mi sarebbe molto utile selezionare il CheckBox in alcune righe su cui eseguire sequenzialmente delle operazioni, ma non so dove andare a reperire un esempio.
Qualcuno può aiutarmi?

:( Riconosco che sto movimentando fin troppo questo forum ma vi avevo avvertito :whistle:

Buona notte a tutti
User avatar
wriedmann
Posts: 3753
Joined: Mon Nov 02, 2015 5:07 pm
Location: Italy

Uso del CheckBoxes in DataListView

Post by wriedmann »

Ciao Claudio,
per reperire le righe che sono state scelte bisogna lavorare con i reltivi item. Personalmente lo faccio a livello di controllo, però lo si può fare anche a livello di finestra:

Code: Select all

local nLen as dword
local nI as dword
local aChecked as array
local oLVI as ListViewItem

nLen := oListView:ItemCount
aChecked := {}
for nI := 1 upto nLen
  oLVI := oListView:GetItemAttributes( nI )
    if oLVI:StateImageIndex == 2	// checked
      AAdd( aChecked, oLVI )
   endif
next
return aChecked
Questo codice lo ho copiato da un mio metodo perciò dovrebbe essere corretto (sfortunatamente scrivendo del codice dalla memoria possono esserci sempre errori di battitura).

Saluti
Wolfgang
Wolfgang Riedmann
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
User avatar
claudiocarletta
Posts: 101
Joined: Sat Sep 05, 2020 8:56 am

Uso del CheckBoxes in DataListView

Post by claudiocarletta »

Ciao Wolfgang,
ho letto con attenzione il codice che gentilmente hai condiviso, ho capito che questo serve a selezionare le eventuali righe su cui è stata messa la spunta sul Check Box della riga della DataListView e quindi operare di conseguenza.
Quello che ancora non sono riuscito a fare, è far apparire il Check Box sulla riga della DataListView.
Mettendo a true la proprietà (vedi figura)
BoxInList.JPG
BoxInList.JPG (19.13 KiB) Viewed 486 times
vedo solamente che il contenuto del primo campo si sposta leggermente a destra per fare spazio ad un qualcosa che non vedo e non posso selezionare (vedi figura)
BoxInList2.JPG
BoxInList2.JPG (24.48 KiB) Viewed 486 times
Sicuramente c'è da settare qualcos'altro ma non ho idea dove reperire queste informazioni.
Esiste un manuale in rete o scaricabile del VO 2.8? Io mi sono fermato al VO 2.5, ho acquistato tutti i libri in italiano che c'erano in circolazione fino a quella versione e poi non ho altro.

Ho già in mente un piano B, aggiungo un campo char(1) che riempio o svuoto con un doppio clik sulla riga della DataListView con un carattere di spunta visualizzato, poi rileggo le righe della DataListView ed eseguo il codice laddove ho segnato la spunta.

Grazie di tutto

Buona domenica
Claudio
User avatar
wriedmann
Posts: 3753
Joined: Mon Nov 02, 2015 5:07 pm
Location: Italy

Uso del CheckBoxes in DataListView

Post by wriedmann »

Ciao Claudio,
l'unica cosa che mi viene in mente che ti potrebbe mancare un manifest.
Prova ad aggiungere il file che trovi nell'archivio allegato nella cartella del tuo programma, dandogli lo stesso nome del tuo eseguibile e aggiungendo .manifest. Se il tuo eseguibile si chiama pippo.exe, il file si deve chiamare pippo.exe.manifest.
cctl6_manifest.zip
(801 Bytes) Downloaded 68 times
Per quanto riguarda la documentazione: ne trovi una copia qui: https://www.riedmann.it/download/VO28SP4bHelp.zip
Saluti
Wolfgang
Wolfgang Riedmann
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
User avatar
wriedmann
Posts: 3753
Joined: Mon Nov 02, 2015 5:07 pm
Location: Italy

Uso del CheckBoxes in DataListView

Post by wriedmann »

Ciao Claudio,
ancora una cosa: visto che è domenica, a mezzogiorno smetto di lavorare e vado in montagna e non risponderò prima di domani mattina.
Saluti
Wolfgang
Wolfgang Riedmann
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
User avatar
softdevo@tiscali.it
Posts: 191
Joined: Wed Sep 30, 2015 1:30 pm

Uso del CheckBoxes in DataListView

Post by softdevo@tiscali.it »

Ciao ecco qui il codice che io uso

LOCAL nConta AS INT
LOCAL nRighe AS INT
LOCAL oListViewItem AS System.Windows.Forms.ListViewItem
LOCAL cKey as STRING
nRighe := SELF:oDcMyListView1:Items:Count
IF nRighe > 0
SELF:Cursor := System.Windows.Forms.Cursors.WaitCursor
FOR nConta := 1 UPTO nRighe
IF SELF:oDcMyListView1:Items[nConta-1]:Checked
oListViewItem := SELF:oDcMyListView1:Items[nConta-1]
cKey := oListViewItem:SubItems[Numero della colonna da leggere]:Text
SELF:FaiQualcosa(cKey)
ENDIF
NEXT
SELF:Cursor := System.Windows.Forms.Cursors.Default
ENDIF
User avatar
claudiocarletta
Posts: 101
Joined: Sat Sep 05, 2020 8:56 am

Uso del CheckBoxes in DataListView

Post by claudiocarletta »

Ciao Danilo,
Grazie per la dritta, provo subito il codice che hai condiviso

Saluti Claudio
Post Reply