Ho provato anche questo metodo:
per modificare il ShellCtrls.pas:
ho dovuto ovviamente sganciare il componente Shellcontrols modificarlo e poi ricaricarlo sul RAD, ma nonostante ciò continua a non funzionare, probabilmente quel codice è strutturato per il componente TlistView che possiede l'evento ‘OnCompare’ senza il quale ShellListView non riesce a gestire la routinecodice:TCustomShellListView = class(TCustomListView, IShellCommandVerb) > ... > public > ... > property FolderList: TList read FFolders; << ADD THIS > ... > end;
Inoltre il pacchetto ShellControls utilizzato che si reperisce facilmente su GitHub contiene una DEMO molto esaustiva sul funzionamento della VCL che infatti non considera assolutamente l'evento ‘OnColumnClick’ ma una specie di ‘SORT’ che richiama da una ActionListcodice:ShellListView1.FolderList.Sort(ShellCompare);
che allinea i file per tipo e basta.codice:procedure TMainForm.actnSortedUpdate(Sender: TObject); begin actnSorted.Checked := ShellListView.Sorted; end;
In conclusione credo (e spero di essere smentito…) che non ci sia modo di ottenere l'ordinamento delle colonne su TshellListView.

Rispondi quotando