Modules

5.29 API - Creare a runtime il controllo ListView senza necessità di OCX (con ImageList)
  Alessandro Baraldi, Klaus H. Probst
L'esempio allegato a questa FAQ mostra come creare a runtime il controllo ListView senza necessità di usare un file OCX, ma appoggiandosi direttamente alla DLL di Windows.

Il controllo creato consente l'ordinamento crescente o decrescente per colonna in base ad un clic sull'header dell controllo stesso. Consente anche il DragAndDrop delle colonne per poterle scambiare di posizione (ma non l'indice). Gestisce la multiicona per ogni colonna. 'Esasperando la gestione si potrebbe impostare un'icona per ogni cella (ma non lo ritengo utile).

Importante
Dopo aver aperto in modalità struttura la maschera non cercate di aprirla in modalità visualizzazione. Questo comporterebbe il crash dell'applicativo poichè è usata la tecnica del subclassing.
Chiudere prima Access, poi riaprire la maschera per verificarne il funzionamento corretto.
Per evitare il problema descritto, basterà convertire il progetto in MDE. L'alternativa è quella di creare una DLL esterna alla quale passare la gestione del subclassing.
La versione pubblicata per permettere la completa visualizzazione del codice non poteva essere distribuita come MDE.

Nota di Giorgio Rancati
Il crash di Access con versione successiva ad Access 97 al verificarsi di tali situazioni è notificato anche nella Kb Microsoft:
ACC2000: Rilevamento e impedimento dello scorrimento dei record di una maschera mediante la rotellina del mouse
http://support.microsoft.com/default.aspx?scid=kb;it;278379&Product=accIN2

Nota di Alessandro Baraldi
Questo esempio è stato realizzato usando una routine di Klaus H. Probst (che ringrazio per la gentile concessione) da me modificata per permetterne l'utilizzo con Access.

Download:
 
  API_C_ImageListView.zip (344Kb) MSAccessXP database


Se pensate di avere del materiale freeware interessante e volete pubblicarlo, allora leggete qui.