TShellListView/fr
│
English (en) │
français (fr) │
Remarque: Cette documentation n'est pas destinée à être approfondie, mais il suffit pour commencer à un débutant sur l'utilisation de l'objet. Cette discussion particulière est basée à MS-Windows, et en particulier à Windows 7. À tout niveau, sa fonctionnalité semble être spécifique au système d'exploitation, et il faut prendre soin de transférer le code à l'aide de cet objet vers un autre système d'exploitation.
Le comportement par défaut semble lister uniquement les noms de fichiers. Bien que le comportement puisse être fait pour être comme l'Explorateur de fichiers, les icônes ne s'affichent pas par défaut.TShellListView affiche des fichiers selon sa propriété Root. Celle-ci contient le chemin d'accès complet depuis le lettre de lecteur jusqu'au dossier courant. Le composant TShellListView est disponible depuis l'onglet Misc de la palette de composants.
Si vous l'utilisez pour afficher le chemin complet incluant un fichier sélectionné, vous devez ajouter une barre oblique ('\' ou '/' dans UNIX) à Root, comme dans :
pathname := '"' + svList.Root + '\' + svList.Selected.Caption + '"';
où svList
est le nom de l'objet TShellListView, et svList.Selected.Caption
contient le nom du fichier sélectionné par l'utilisateur. pathname
est une variable chaîne contenant le chemin entier de la lettre de lecteur au nom de fichier et son extension. Il est recommandé d'appliquer les guillemets dans MS-Windows si le chemin contient des espaces. Cela rend le processus habituel d'échapper les espaces avec des %20
inutile dans Windows.
Parler avec TShellTreeView
* * * A FINIR * * *
There is little coding to do in getting TShellListView to communicate with TShellTreeView. In the Object Inspector, under the Events tab, for TShellTreeView, set the event "ShellListView" to the name of your TShellListView object. This ought to be already stored on a dropdown menu if both TShellListView and TShellTreeView objects are deployed on your form. For completeness, so that both objects respond to each other, set the ShellTreeView event of TShellListView to the name of your TShellTreeView object.
Alternatively, if we let svList be the TShellListView object; and svTree be the TShellTreeView object, then these properties can be set programmatically:
svList.ShellTreeView := svTree;
svTree.ShellListView := svList;
The result is to invoke Explorer-like behavior in their responsiveness.
Ouverture de documents
In Windows, the generic command for opening a file in TShellListView is OpenDocument(pathname)
, where pathname
is the path to the file. For this you should remember to add lclintf
to your uses
clause. Other operating systems can get away with using OpenURL(pathname)
, except that spaces must be escaped with a %20
string, and file://
must prepend the pathname. Example:
OpenURL('file:///home/joe/text/foo%20bar.txt');
Contrast this with the Windows convention:
OpenDocument("C:\Users\Joe\My Documents\xyz.txt");
OpenURL is not recommended for use in Windows for opening documents using the file:// URI scheme.
Because OpenDocument
also acts as a Boolean function, it returns false if there is no way in the registry to open the file. If we let pathname
be the full path to the file from the drive letter to the filename, this statement will open the document if OpenDocument(pathname)
returns True
:
if not OpenDocument(pathname) then // no method to display this file type
ShowMessage('Cannot display ' + pathname);
Faire face à l'étrangeté
Lors de l'exécution d'un programme avec cet objet, vous pouvez remarquer que le double-clic sur un nom de fichier vous permettra de l'éditer ou de supprimer son nom entièrement par défaut. Ces types de modifications semblent n'avoir aucun effet sur le fichier lui-même. Pour arrêter ce comportement, définissez la propriété ReadOnly sur True.