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 :

pour spécialiste du Glisser_Déposer, OnDragOver, OnDragDrop


Sujet :

Delphi

  1. #21
    Membre habitué

    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2020
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Février 2020
    Messages : 167
    Points : 162
    Points
    162
    Par défaut problème d'approche (code page dispo à la question précédente)
    Je suis toujours perplexe devant la gestion de ma souris....

    Je réalise, plus ou moins bien... le OnDragOver, pour déplacer mon image, et le OnDragDrop, pour créer une réaction au lâcher. Jusque là,tout va bien.

    Cependant, même si les objets sur le panel en restent prisonnier, on peut très bien, par erreur, continuer déplacer la souris en restant cliqué, et sortir le curseur hors du panel. L'objet "draggé" lui, reste bien prisonnier du panel, mais en revanche, au lâcher, le curseur étant au-delà, c'est une autre histoire.
    En effet, pour que le lâcher réagisse comme prévu, il doit se produire sur le panel ou une case recept.
    Mais au-delà du panel, puisque le curseur cliqué peut quitté ce panel, il faudrait que le OnDopDrap soit effectif sur tous les objets de la fiche, afin de pouvoir réagir dans toutes les situations de lâcher, hors panel.

    Cette solution fonctionnerait à mon sens, mais quel travail !!!
    Affecter à tous les objets que je pose, le OnDragDrop, ça me parait peu élégant et très lourd et source d'oubli!

    Pour palier au problème, j'ai essayé d'affecter une valeur fixe de coordonnées pour le MouseCursorPos, afin de bloquer le curseur, dès qu'il s'approche de la limite du panel, pour le forcer à rester à l'intérieur. C'est à dire que même si je continue à descendre la souris plus bas que le bas du panel, le MouseCursorPos serait forcé à une valeur fixe dans le bas du panel, mais Delphi n'est pas content, il me dit que cette valeur n'est pas affect able, ce qui parait logique....

    1/ Comment travailler des déplacements sur souris sans risquer les aléas d'être hors zone de travail, sur un label ou un endroit de la fiche non utilisé, sans que le OnDragDrop au lâcher ne sache réagir??

    2/ Au pire, peut-on affecter un OnDragDrop à tous ce qui est visible sur la fiche, en une commande, sans se lancer dans un recensement difficile et source d'erreur, puisque évolutif au fil du développement??

    Merci à tous ceux qui ont eu le courage de lire jusqu'au bout, et surtout de comprendre mon interrogation...

  2. #22
    Membre habitué

    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2020
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Février 2020
    Messages : 167
    Points : 162
    Points
    162
    Par défaut Pour ALWEBER
    Bonjour et merci pour ce code très astucieux.
    J'apprécie beaucoup la manière pragmatique de tester la proximité de l'image avant le dépôt sur la case!
    Je suis en train de mixer ton code, avec mon format de départ pour mon Quizz et ça va déjà bien mieux.
    Je ne supportais pas le "OnDragDrop" non géré hors de mon panel, et si un composant disparaissait en sortant du panel, sous la partie libre de la fiche, quand je lâchais la souris, le le perdais....
    Avec le "OnMouseDown, le lâcher s'applique à mon image et je peux la contraindre à revenir à sa place même si je ne la vois plus!! Ouf!


    Je n'ai pas compris pourquoi tu n'utilises pas directement un TImage, mais une TShape que tu customises et que tu "repeins" avec l'image de départ, mais peut-être est-ce à cause de ceci:
    j'ai besoin de lire le nom de l'image que je promène en glissant, qui est "Sender" dans mon "OnMouseDown" ou "OnMouseMove" ou "OnMouseUp".
    En effet, je souhaite changer l'aspect des cases quand je dépose ou quand je reprends l'image déposée, et pour cela, je doit pouvoir identifier cette dernière, par sa propriété "Nom", çà ma semblait simple...

    Cependant le Nom du TImage semble spécial, pas un simple "Name" du genre "String", mais un TObject??
    Peut-on récupérer le Nom du TImage_Sender en mouvement par la souris, pour le traiter dans le code? Comment?

    Par exemple, ligne 180 à 190, je voulais lire le dernier caractère du "Sender.Name", qui doit être, 1 ou 2 ou 3 ou 4, pour l'affecter à "i" et reposer ainsi l'image à sa place, mais comme c'est refusé car le Name est non utilisable, je suis obligé de faire 4 cas sur 4 lignes, Bof, Bof, non??J'ai mis les questions et images dans un dossier au niveau des fichiers code. Cependant, si le chargement par adresse absolue, réalisée dans le code, fonctionne, je ne suis pas parvenu à faire du relatif.. Si le cœur t'en dit, j'ai du omettre une info...

    Merci d'avance et au plaisir de nouveaux échanges!mardi_17_mars.zip

    Je te mets mon code, tu me diras si il y a des choses qui choquent si tu as le temps.

  3. #23
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 507
    Points : 2 779
    Points
    2 779
    Billets dans le blog
    10
    Par défaut
    Tu peut utiliser la propriété Tag au moment de la création pour entrer un numéro.
    J'utilise TShape parce que je suis reparti d'un précédent exemple. Peut-être que le Timage convient je regarderai

  4. #24
    Membre habitué

    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2020
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Février 2020
    Messages : 167
    Points : 162
    Points
    162
    Par défaut Pour ALWEBER
    Merci pour l'idée du TAG!
    Je pense pouvoir simplifier certains endroits du code..

  5. #25
    Membre habitué

    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2020
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Février 2020
    Messages : 167
    Points : 162
    Points
    162
    Par défaut Evolution
    Bonsoir ALWEBER (ou autre "vrai-connaisseur-ressource"), dis-moi si je te sollicite trop souvent, pas de problème si c'est le cas, c'est juste que pendant le confinement, j'en profite pour essayer d'apprendre plus.

    J'ai fait évoluer le code grâce à ton idée du TAG.

    Je peux poser mes images sur les cases où elles se positionnent bien.
    Si je les pose en trop loin d'une case, elles retournent bien au départ.
    Quand je pose une image, la case devient transparente et quand je la retire, la couleur revient.
    Je te laisse survoler tout ça et me dire si un problème grossier apparait. (J'ai laissé les messages et memo de debug qui m'aident bien)

    Qu'en penses-tu si tu as le temps de tester.

    L'évolution à venir sera de composer de multiples questions, chacune dans un répertoire avec 4 photos et un fichier txt pour l'énoncé.

    Au plaisir d'un nouvel échange...
    Fichiers attachés Fichiers attachés

  6. #26
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 507
    Points : 2 779
    Points
    2 779
    Billets dans le blog
    10
    Par défaut
    Bonjour,
    Je suis reparti de la version de mardi qui me semble plus lisible.
    J'ai enlevé tous les ancrages pour donner de la souplesse à l'ensemble
    J'ai redirigé l'exe
    Voici le programme en pièce jointe.
    Bonne lecture
    Fichiers attachés Fichiers attachés

  7. #27
    Membre habitué

    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2020
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Février 2020
    Messages : 167
    Points : 162
    Points
    162
    Par défaut Gestion de fichiers.... txt......tableau?.....
    Bonjour ALWEBER et merci pour ta relecture qui remet un cadre plus organisé..
    Je vois que tu mets comme nom de composant, d'abord un quelques lettres en minuscules pour connaitre la nature tout de suite et ensuite seulement, quelques lettres pour identifier l'objet dans le contexte du programme, je pense que de conserverai l'idée car je remarque que les objets ont une tendance à se multiplier l'air de rien, et ensuite difficile de se rappeler de tout, je me perds un peu..

    Je n'ai pas répondu tout de suite, car je n'avais pas fait attention aux messages, désolé.

    J'ai avancé de mon coté aussi :

    j'ai limité le déplacement des images dans la zone panel en créant des marges limites intérieures.
    J'ai effacé les images de la question précédente avant de construire la nouvelle, car parfois, pendant le déplacement, des images furtives de la question précédente apparaissaient...
    je neutralise le bouton valider tant qu'une réponse n'est pas proposée. (tous les recept occupés sinon des images en plus arrivent...)
    les questions construites peuvent avoir un nombre de "recept" et d'images à déposer différents.

    Je te montrerais tout ça quand ça tournera bien si tu es ok, pour avis?

    Mes attentes actuelles portent plus sur les fichiers que je ne maitrise pas bien.
    je voudrais choisir une stratégie cohérente.

    Question 1
    D'une part, chaque question est stockée dans un fichier txt, une info par ligne, du gerne : énoncé, nb de récpt, nb d'images, code réponse.
    Seulement, cela fait un fichier par question.
    Peut-on facilement enregistrer ou sauver un fichier que l'on interprète sous forme de tableau, et même, créer son propre formet de fichier pour son application. (J'ai testé avec un fichier xlsx, mais c'est super lourd, pour peu de choses il me semble.
    Je souhaiterais simplement que mes questions qui représentent chacune quelques octets de textes, auquel on doit pouvoir accéder indépendamment, soient regroupées dans un seul fichier de n questions indexées, de 4 lignes chacune... Est-ce possible??

    Question 2
    Je souhaite également, que chaque élève se connecte avec un code simple, et puisse enregistrer ses résultats. chaque participant identifié, serait, à la connexion vérifier par son nom et son code, puis, à la fin, l'enregistrement sera dirigé vers son fichier txt perso.

    J'ai pensé à autant de fichier txt que d'élèves, que je créerai en avance, sur une petite interface Delphi indépendante, contenant : nom, prénom, code et résultats à venir, sur quelques lignes de txt.

    Cependant, il me faut autant de fichier txt que d'élèves, mais ca reste simple et les accès sont beaucoup moins conflictuels, puisque un seul accédant par ficher txt...
    Cette stratégie est-elle cohérente?

    N'existe-t-il pas un moyen de créer une petite base de données simple, pour regrouper tous ces élèves potentiels, dans un même fichier?
    Quelle type d'extension tableau permet cela sans sortir la cavalerie lourde du style EXCEL?

    Est-il compliqué de se faire son petit format de stockage perso, petit tableau de données String ou est-ce difficile?

    Merci si tu as des idées, je vais faire quelques tentatives de coté.

    Au plaisir.

  8. #28
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 264
    Points : 41 665
    Points
    41 665
    Billets dans le blog
    64
    Par défaut
    Bonsoir

    Plusieurs élèves un seul poste ? Une base de données SQLite
    Plusieurs élèves plusieurs postes en réseau local ? Une base de données type Firebird, MySQL
    Plusieurs élèves, une connexion via internet ? Cela se complique, une base de données MySQL

    Mais on dérive totalement du sujet initial et ce depuis la solution proposée par Alweber.

    Ma suggestion, ouvrir un nouveau sujet pour aborder ce point et en indiquant clairement l'objectif : monoposte, multipostes locaux, multipostes+internet, multiposte données hébergée sur internet.
    Les réponses et techniques ne seront pas les mêmes en fonction de ce choix

  9. #29
    Membre habitué

    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2020
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Février 2020
    Messages : 167
    Points : 162
    Points
    162
    Par défaut problèmatique Drag And Drop résolu
    Bonjour, SergioMaster m'a fait remarquer que ma demande n'est plus en accord avec le titre de la discussion, et c'est vrai!
    Désolé car en effet, mon problème de gestion de souris est résolu et les questionnements à venir, axés sur d'autres problématiques sont à présent hors sujet ici.
    Merci donc à SegioMaster qui m'a tout de même donné des pistes pour ma gestion de fichiers, à Blonde et bien sur à Alweber, pour vos conseils, et rendez-vous peut-être dans un nouveau sujet..
    Amicalement.

  10. #30
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 507
    Points : 2 779
    Points
    2 779
    Billets dans le blog
    10
    Par défaut
    Bonjour, je suis à ta disposition. Bonne journée

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Question pour spécialiste oracle
    Par plawde dans le forum Oracle
    Réponses: 2
    Dernier message: 05/08/2016, 12h24
  2. Question pour spécialiste de AcroPDFLib_TLB.pas
    Par colorid dans le forum Composants VCL
    Réponses: 7
    Dernier message: 23/05/2009, 14h41
  3. Pour les spécialistes des Cartes Mères !
    Par zakuli dans le forum Composants
    Réponses: 8
    Dernier message: 04/12/2005, 08h30

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