IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

Question de syntaxe pour un pointeur sur un TJvShFileOperation


Sujet :

Langage Delphi

  1. #1
    Membre régulier

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    536
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 536
    Points : 121
    Points
    121
    Par défaut Question de syntaxe pour un pointeur sur un TJvShFileOperation
    Bonjour à tous

    Je m'écris une routine exploitant le composant JvShFileOperation (http://wiki.delphi-jedi.org/wiki/JVC...eOperation.pas) . Elle est censée être appelée de n'importe quel programme auquel je la lierai avec Uses : elle est ds un fichier .PAS .

    J'ai défini un type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    Type  TOptions_SHFiles = record
     
          fofAllowUndo : boolean; // Preserves Undo information, if possible.
          fofFilesOnly : boolean; //  Effectue l'opération sur les fichiers que, si un nom de fichier générique est spécifié.
          fofMultiDestFiles : boolean;  { Indique que la propriété DestFiles spécifie plusieurs fichiers de destination (une pour chaque fichier source)
    										                 au lieu d'un répertoire où tous les fichiers source sont à déposer.}
          fofNoConfirmation: boolean;   // Does not display confirmation dialog boxes and responds with "Yes to All" for any dialog box that would be displayed.
          fofNoConfirmMkDir : boolean;   // Does not ask for confirmation before creating a new directory if the operation requires one to be created.
          fofRenameOnCollision : boolean; //  If this flag is not set, the component shows a dialog box that asks for confirmation to replace the already existing target file.
          fofSilent : boolean; // Does not display a progress dialog box.
          fofSimpleProgress : boolean; //   Displays a progress dialog box but does not show the file names.
          fofWantMappingHandle : boolean; // 	Permet le déclenchement des événements OnFileMapping,
    											      // si fofRenameOnCollision est inclus dans les options et tous les fichiers ont été renommés.
          fofNoErrorUI : boolean;     // Ne pas afficher une interface utilisateur en cas d'erreur.
          fofNoCopySecurityAttributes : boolean; //	Ne copie pas les attributs de sécurité du fichier.
          fofNoRecursion : boolean;   // Ne fonctionne pas de manière récursive dans les sous-répertoires.
          fofNoConnectedElements : boolean; // Ne pas déplacer les fichiers connectés en tant que groupe. Se déplace uniquement les fichiers spécifiés.
          fofNoRecurseParse : boolean; 	 //	Traite les points d'analyse comme des objets, pas les conteneurs. (c-à-d ?)
          fofWantNukeWarning : boolean;	 { Envoie un avertissement si un fichier est détruit lors d'une opération de suppression plutôt que recyclés.
    											                 Ce drapeau (flag) remplace partiellement fofNoConfirmation. }
          end;
    La procédure appelant le JvSHFileOperation doit le paramétrer au niveau des options. Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
            Form1.JvSHFileOperation1.Options := [];  // C'est là que le bât blesse : d'où la nécessité du pointeur sur le JvSHFileOperation1
            Include(Options,fofAllowUndo);
            Include(Options, fofMultiDestFiles);
            Include(Options, fofNoConfirmation);
            Include(Options, fofNoConfirmMkDir);
            Include(Options, fofSilent);
    Et le pointeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        Ptr_JvSHFileOperation : TJvSHFileOperation;
    Oui mais... Ce ne sera pas toujours la Form1 qui va exploiter cet objet. D'où l'idée d'un pointeur sur lui. Or, quelle peut être la syntaxe pour attribuer, avec (ou sans) la directive Include, les options que je souhaite ? Les options étant passées en paramètres à la procédure perso.

    Delphi n'accepte pas cette syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
          Include(Ptr_JvSHFileOperation.Operation, Struct_Options_SHFiles.fofNoConfirmation);
    La fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Procedure Appel_JvSHFiles(Nom_Source : string; Nom_Dest : string; Tache_A_Executer : integer);  // Tache_A_Executer : integer, variant selon copie, effacement, etc
    Quelle serait la bonne syntaxe ?

    Merci

  2. #2
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    Include ne fonctionne pas avec une propriété, il faut passer par une variable

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    var
      Options : TOptions; // je ne connais pas le type exact, mais il faut prendre le même
    begin
      Options := [];
      if Rec.fofAllowUndo  then
        Include(Options,fofAllowUndo);
     .... 
     Form1.JvSHFileOperation1.Options := Options;
    end;
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

Discussions similaires

  1. Réponses: 8
    Dernier message: 30/12/2012, 10h13
  2. Réponses: 6
    Dernier message: 01/03/2012, 18h25
  3. Syntaxe pour une recherche sur 2 listes déroutantes
    Par christ-94 dans le forum Access
    Réponses: 2
    Dernier message: 24/05/2006, 17h51
  4. [Syntaxe] Pointeur sur enregistrement : syntaxe exacte
    Par phplive dans le forum Langage
    Réponses: 8
    Dernier message: 18/04/2005, 21h38
  5. [analyse de syntaxe] pour C et C++ sur Linux
    Par Madmac dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 10/07/2004, 06h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo