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

 Delphi Discussion :

Procedure Drag and drop multiple !


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 591
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 591
    Par défaut Procedure Drag and drop multiple !
    Bonjour à toutes et à tous,

    En cas d'une procédure drag and drop, est t'il possible de pouvoir le faire avec 5 Timage, car la je bloque.

    Avec un Timage ceci fonctionne :

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
     private
        { Déclarations privées }
     
        _pic: TPicture;
     
         originalPanelWindowProc : TWndMethod;
         procedure PanelWindowProc (var Msg : TMessage) ;
         procedure PanelImageDrop (var Msg : TWMDROPFILES) ;
     
    procedure TFormtest2.PanelWindowProc(var Msg: TMessage) ;
    begin
       if Msg.Msg = WM_DROPFILES then
         PanelImageDrop(TWMDROPFILES(Msg))
       else
         originalPanelWindowProc(Msg) ;
    end; (*PanelWindowProc*)
     
    procedure TFormtest2.PanelImageDrop(var Msg: TWMDROPFILES) ;
    var
       numFiles : longInt;
       buffer : array[0..MAX_PATH] of char;
    begin
       numFiles := DragQueryFile(Msg.Drop, $FFFFFFFF, nil, 0) ;
       if numFiles > 1 then
       begin
         ShowMessage('Vous pouvez déposer un seul fichier image à la fois !') ;
       end
       else
       begin
         DragQueryFile(Msg.Drop, 0, @buffer, sizeof(buffer)) ;
         try
           Image1.Picture.LoadFromFile(buffer) ;
           Image2.Picture.LoadFromFile(buffer) ;
           Image3.Picture.LoadFromFile(buffer) ; 
              except
           on EInvalidGraphic do ShowMessage('Ce format n''est pas supporté !') ;
         end;
       end;
    end; (*PanelImageDrop*)
    Et dans le on create :

    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
     
     originalPanelWindowProc := Panel1.WindowProc;
       Panel1.WindowProc := PanelWindowProc;
     
       DragAcceptFiles(Panel1.Handle,true) ;
     
       originalPanelWindowProc := Panel2.WindowProc;
       Panel2.WindowProc := PanelWindowProc;
     
       DragAcceptFiles(Panel2.Handle,true) ;
     
       originalPanelWindowProc := Panel3.WindowProc;
       Panel3.WindowProc := PanelWindowProc;
     
       DragAcceptFiles(Panel3.Handle,true) ;
    Avec les 3 Timage non.

    Dois je multiplier mes procédures suivant le nombre d'images ?

    Merci de votre attention.

    @+,

    Cincap

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 591
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 591
    Par défaut
    Désolé du dérangement, j'ai trouvé mon erreur.

    @+,

    Cincap

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 591
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 591
    Par défaut
    Je réouvre ce topic, en effet j'ai constaté que lors du drag and drop de mon bitmap, je perdais en qualité

    par rapport au chargement avec un TopenDialog du même bitmap.

    Il s'agit peut être d'une erreur dans ma procédure au niveau buffer mais quoi :

    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
     
    procedure TFormtest2.PanelImageDrop(var Msg: TWMDROPFILES) ;
    var
       numFiles : longInt;
       buffer : array[0..MAX_PATH] of char;
    begin
       numFiles := DragQueryFile(Msg.Drop, $FFFFFFFF, nil, 0) ;
       if numFiles > 1 then
       begin
         ShowMessage('Vous pouvez déposer un seul fichier image à la fois !') ;
       end
       else
       begin
         DragQueryFile(Msg.Drop, 0, @buffer, sizeof(buffer)) ;
         try
                 Image1.Picture.LoadFromFile(buffer) ;
     
              except
           on EInvalidGraphic do ShowMessage('Ce format n''est pas supporté !') ;
         end;
       end;
    end; (*PanelImageDrop*)
    Si quelqu'un avait une idée.

    Merci.

    @+,

    Cincap

Discussions similaires

  1. Drag and drop "de l'extérieur"
    Par Invité dans le forum C++Builder
    Réponses: 12
    Dernier message: 31/03/2020, 10h10
  2. [Article] Système de transfert multiple de fichiers à l'aide de drag and drop
    Par Bovino dans le forum Publications (X)HTML et CSS
    Réponses: 21
    Dernier message: 18/12/2018, 17h42
  3. Drag and drop multiple
    Par Patrice Henrio dans le forum Langage
    Réponses: 3
    Dernier message: 06/11/2013, 23h40
  4. [WD11] procedure drag and drop
    Par romu55 dans le forum WinDev
    Réponses: 3
    Dernier message: 24/11/2009, 08h44
  5. drag and drop
    Par jujuesteban dans le forum Composants VCL
    Réponses: 5
    Dernier message: 20/06/2003, 09h23

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