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 :

OnMouseMouve et array of Timage


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Inscrit en
    Mars 2007
    Messages
    205
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 205
    Par défaut OnMouseMouve et array of Timage
    Bonjour,

    je cherche vainement une piste (dans la FAQ et forum Delphi) pour la question suivante :
    J'ai des TImages nommées Photo1, Photo2, Photo3, ..., Photo12.
    Je les remplace dans un programme existant par un array[1..12] of TImage.
    Il y a dans le programme existant des procédures avec MouseMove. Par exemple dans le cas de Photo3 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    procedure TForm1.Photo3MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    begin
           { cette procedure, non recopiée complètement ici, utilise les coordonnées X et Y pour des calculs}
    end;
    Maintenant, Photo3 n'existe plus et est remplacé par Photo[3].
    Le problème est de ré-écrire la procédure ci-dessus de telle sorte qu'elle fonctionne exactement comme avant.
    Je n'espère pas qu'on me donne un code totalement finalisé, mais si vous avez une indication sur la méthode vers laquelle s'orienter ...

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

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

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Photo[3].OnMouseMove := Photo3MouseMouve;
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Membre très actif
    Inscrit en
    Mars 2007
    Messages
    205
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 205
    Par défaut
    Je ne comprends pas bien : Photo3 a été supprimé de la fiche et maintenant l'identificateur correspondant Photo3MouseMove est non déclaré.
    Je m'imaginais qu'il faudrait ré-écrire une procédure pour remplacer l'ancienne, que photo[i] figurerait dans la nouvelle procédure (avec i:=3 par exemple) et que Photo3MouseMove disparaissait définitivement du code.
    Mais je me trompe peut-être.
    En tout cas je suis encore dans le brouillard, mais ça fini toujours par s'éclaircir, d'une façon ou d'une autre.

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

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

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    s'il y a du code associé à Photo3MouseMove, il n'a pas disparu en supprimer le composant Photo3...ceci dit il serait plus propre de déplacer la méthode dans la partie "private" de la fiche au lieu de la laisser là ou Delphi l'a mise (published par défaut)
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  5. #5
    Membre très actif
    Inscrit en
    Mars 2007
    Messages
    205
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 205
    Par défaut
    Oui, bien sûr, le code correspondant n'est pas perdu. D'ailleurs, je me suis bien gardé de toucher au programme d'origine : je le recopie par morceaux sur un programme nouvellement créé. Donc pas d'inquiétude.
    Mais s'il faut reprendre toutes les anciennes procédures MouseMove, MouseUp, MouseDown et d'autres, chacune douze fois, l'intérêt de passer à un array de Tform est très réduit.
    En fait, le but actuel est justement de tester le gain que cela pourrait apporter, en vue de créer une version future, qui comprendrait un nombre considérablement plus grand de TImage, ce qui entrainerait la présence d'un nombre un peu effrayant de procédures selon la méthode existante. Mais ce n'est pas impossible et c'est peut-être ce qu'il faudra se résoudre à faire.

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    409
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 409
    Par défaut
    Tu n'as pas tout a fait compris, toutes les images de ton array vont avoir la même procédure MouseMove, la même MouseUP, donc que tu en ais 3 ou 1000 cela sera pareil

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Création d'un array de Timage
    Par JJJJJ dans le forum Débuter
    Réponses: 6
    Dernier message: 23/03/2009, 14h41
  2. Timage et Canvas??
    Par vanack dans le forum C++Builder
    Réponses: 4
    Dernier message: 14/04/2007, 11h38
  3. Comment utiliser un array of TImage ?
    Par poussinphp dans le forum Langage
    Réponses: 23
    Dernier message: 19/09/2005, 09h24
  4. [TImage] Transfert de Picture par pixels.
    Par H2D dans le forum Langage
    Réponses: 9
    Dernier message: 25/10/2003, 14h37
  5. TImage
    Par Thylia dans le forum C++Builder
    Réponses: 5
    Dernier message: 09/07/2002, 20h03

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