Mis en ligne 16/11/20 :
Dernière version compilée le lun 22 fév 2021 voir MAJ
CHERCHE DOSSIER
Permet de lister rapidement les sous-dossiers d’un dossier racine, en tapant ces premières lettres.
Sommaire
A quoi ça sert ?
- Chacun des patients a un dossier Windows à son nom où son rangés ses différents fichiers de formats divers (documents, images, messages…)
- Si retrouver un nom de fichier ou même le contenu d’un fichier à partir de l’explorateur de Windows est relativement convivial, retrouver simplement un DOSSIER parmi des milliers est plus acrobatique.
Comment ça marche ?
(1) Le premier champ désigne le dossier global ou sont rangés tous les dossiers patients
- Ici DATA par exemple
- Ce dossier est désigné une fois pour toute, et sera repointé à chaque ouverture
(2) Dans le second champ on tape le début du nom du dossier correspondant au nom du patient.
- Par exemple DUPO
(3) La liste nous donne toutes les occurrences de cette sélection :
- Il suffit de double cliquer sur une des entrées de la liste pour ouvrir le dossier.
- A noter que pour des raisons logistiques personnelles, le nom du dossier cliqué est automatiquement placé dans le presse papier
CODE SOURCE
- Ecrit en PASCAL Objet dans l’éditeur Delphi
- A partir d’une
listbox
- Prérequis :
DragMode = dmAutomatic
- ListBox1MouseDown
- Cet événement se produit lorsqu’on appuie sur le bouton gauche de la souris
- Le nom de l’item est récupéré et associé au nom du répertoire pour construire le chemin complet du dossier pointé
if ListBox1.ItemIndex <> -1 then _DOSSIER_PATIENT := IncludeTrailingPathDelimiter(JvDirectory_DATA.Text) + ListBox1.Items[ListBox1.ItemIndex];
_DOSSIER_PATIENT | Variable globale, récupérant le chemin complet du dossier |
JvDirectory_DATA | Composant JEDI “jvDirectoryEdit pour Delphi définissant le DOSSIER RACINE (Peut être remplacé par le “Nom du Dossier” |
IncludeTrailingPathDelimiter | Met ou pas le caractère \ dans le nom du chemin (comme on ne sait jamais s’il est inclut ou pas) |
- ListBox1DragOver
- Cet événement se produit lorsqu’on maintient la souris enfoncée sur un Item de la Liste et qu’on commence à bouger tout en maintenant la souris appuyée. (DRAG)
ListBox_DragOver(ListBox1, Sender, X, Y, State, Accept);
- Enfin ListBox1DragDrop
- Correspond à l’événement cible du Drag And Drop au moment ou la souris est relâchée (DROP) sur la cible.
procedure TForm1.ListBox1DragDrop(Sender, Source: TObject; X, Y: Integer); var Item_SOURCE, Item_CIBLE: string; // i: Integer; begin // recupere les valeur de Source et cible If not GetLisbox_SourceCible(ListBox1, Sender, X, Y, Item_SOURCE, Item_CIBLE) then Begin MessageDLG('Vous devez placer la barre "SOUS" le Nom de la destination', MTinformation, [mbOK], 0); exit; end; if MessageDLG(format('%sDéplacer tout vers ->%s', [Item_SOURCE + cr + cr, cr + cr + Item_CIBLE]), mtConfirmation, mbOKCancel, 0) = mrCancel then exit; Item_SOURCE := IncludeTrailingPathDelimiter(JvDirectory_DATA.Text) + Item_SOURCE; Item_CIBLE := IncludeTrailingPathDelimiter(JvDirectory_DATA.Text) + Item_CIBLE; // i := ListBox1.ItemIndex; Folder_MoveDir(Item_SOURCE, Item_CIBLE); BTN_Chercher.Execute; if ListBox1.Items.count > 0 then ListBox1.ItemIndex := 0; end;
VERSION DU 20.11
* Ajout au menu de l’option copier le nom du dossier dans le presse papier
* Ajout de la fonction “DÉPLACER UN DOSSIER” afin de fusionner 2 dossiers du même patient
– Le déplacement se fait à souris à partir de la liste
– Il suffit de tirer le dossier à déplacer vers le dossier à remplir.
Version du 21/11/2020
– Ajout de la fonction de mémorisation des recherches précédentes
– Permet de revenir facilement sur un dossier antérieur
Le champ de saisie est simplement transformé en Liste de Saisie
– Chaque nouvelle entrée (validée) est mémorisée et peut être retrouvée en déroulant la liste.
– NB : Seules les 10 dernières entrées sont mémorisées à la fermeture du programme (pour ne pas saturer la liste), et seront donc disponibles par défaut à chaque nouveau lancement.