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 :

Drag & drop : drag dans delphi et drop dans notepad


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2003
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 15
    Par défaut Drag & drop : drag dans delphi et drop dans notepad
    bonjour,

    je tourne en rond depuis quelque jours.

    Je voudrais copier du texte dans delphi et le coller dans notepad++ (ou dans un autre pgm windows)

    pour le moment j'arrive à mes fins uniquement en passant via un fichier temporaire.

    QQ1 aurait une piste ou pourrait m'aiguiller ??

    par avance merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Je ne sais pas si je comprends bien la question. On suppose de copier le contenu d'un TMemo par exemple dans un fichier npp ouvert ?

    Si tel est le cas, j'ai travaillé sur la question en FMX. J'ai abandonné, frustré comme d'habitude . Je règle assez facilement le problème en Qt que je pratique depuis 3 ans et pas totalement en Delphi... Je ne me souviens plus si j'ai mis un post pour demander de l'aide...

    Voilà où j'ai arrêté :

    • Dans le sens npp vers FMX. J'ai un problème que je n'arrive pas à résoudre : si le fichier npp est encodé en UTF8 (avec ou sans Bom) alors je peux traîner la sélection choisie du fichier npp vers un TPanel qui remplit un TMemo. S'il est encodé en ANSI, cela ne fonctionne pas
    • Dans le sens FMX vers npp : Je passe par le Clipboard et un simple Ctrl+V suffit.


    Je joins le petit programme qui m'a servi de test. Les finitions sont absentes.

    Utilisation du code fourni : vous lancez DnD03. Vous ouvrez un fichier notepad++ (encodé en UTF8 avec ou sans bom). Vous sélectionnez du texte dans le fichier npp. Vous le traînez et le lâchez à l'endroit indiqué. Voila pour le sens npp->fmx.

    Dans l'autre sens : Un clic sur le bouton 3 copie le contenu dans un autre TMemo (celui de droite) ou vous pouvez le remplir à la main. Si tel n'est pas le cas, vous modifiez un peu ce TMemo de droite pour être sûr que c'est bien lui que vous allez copier vers le ClipBoard. Un clic sur le bouton 4 copie le contenu de ce memo2 dans le Clipboard. Retour dans le fichier npp et collez.

    Evidemment, si vous trouvez pourquoi cela ne fonctionne pas en ANSI et surtout comment contourner ce problème, je suis preneur. Le bouton 1 est une solution partielle et une tentative de compréhension. En ajoutant après le Showmessage de ce bouton, la ligne memo1.Text := value.ToString;, il suffit de sélectionner un texte dans un fichier npp ANSI puis d'effectuer copier et en appuyant sur ce bouton 1, le texte apparaît dans le TMemo. Mais c'est à mille lieux de l'ergonomie avec Qt.
    Fichiers attachés Fichiers attachés
    Dernière modification par Invité ; 18/07/2015 à 02h44.

  3. #3
    Membre averti
    Inscrit en
    Janvier 2003
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 15
    Par défaut
    c'est vrai que je n'ai pas été trop clair

    je veux faire comme toi mais sans faire le Ctrl+V
    Dans le sens FMX vers npp : Je passe par le Clipboard et un simple Ctrl+V suffit.

    Je voudrais déposé le texte dans notepadd ou dans un navigateur. Utilisation pratique je prends un mot de passe dans mon delphi et je le deplace dans un champs de saisie en drag&drop sans faire le Ctrl + v

    pour ton pb : je n'ai que delphi 2010 sous la main donc je ne peux pas executer mais je pense que pour resoudre ton pb il te faut utiliser la fonction AnsiToUtf8(const S: string): UTF8String;

  4. #4
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Le Bloc-notes n'est pas un composant COM et ne supporte pas OLE, ni le glisser-déposer.

  5. #5
    Membre averti
    Inscrit en
    Janvier 2003
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 15
    Par défaut
    Un deposé dans le navigateur web alors

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Citation Envoyé par scafc2 Voir le message
    pour ton pb : je n'ai que delphi 2010 sous la main donc je ne peux pas executer mais je pense que pour resoudre ton pb il te faut utiliser la fonction AnsiToUtf8(const S: string): UTF8String;
    Non parce que lorsque le format du fichier est ANSI, le data.data.value renvoyé est "empty". Ce que je ne comprends pas. Je ne sais même pas s'il est réellement vide. Il est peut-être illisible ? Cela dépasse mes compétences faute de documentation. J'ai posé le problème sur ce forum il y a plus d'un mois. Sans réponse malheureusement. Peut-on déduire que le problème est du côté de Delphi ? Comme je ne suis pas sûr du traitement et de l'interprétation du Rtti.value, je n'en conclus... rien... même si en Qt, je n'ai pas rencontré ce problème, ni en Windev d'ailleurs. Mais les approches sont différentes, donc rien de significatif.

    Citation Envoyé par clementmarcotte Voir le message
    Le Bloc-notes n'est pas un composant COM et ne supporte pas OLE, ni le glisser-déposer.
    Je ne connais pas le Bloc-notes . Mais vous pouvez faire du DnD (glisser/lâcher) entre Npp[document UTF8] (ou LibreOffice) et un TMemo[FMX] par exemple, comme le permet le projet Dnd03 dont j'ai joint le source. Dans l'autre sens, non, visiblement mais le copier/coller est alors fonctionnel en Delphi.
    Dernière modification par Invité ; 19/07/2015 à 10h39.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    j'ai pris le temps de vérifier avant d'annoncer des âneries d'autant que je m'étais attelé à une partie du problème (npp vers projet Delphi) et pas vraiment à sa réciproque.

    Sous Windows 8.1, j'ai ouvert la dernière version de Qt 5.5-MinGw32. Dedans y figure un exemple intitulé "codeeditor" que j'ai compilé et lancé.

    J'ai parallèlement ouvert mon NotePad++ avec un document en ANSI et un autre en UTF8. Dans les 2 cas et dans les sens, le glisser/coller est possible, autrement dit du projet Qt vers npp et de npp vers le projet Qt. Donc cela devrait être possible en Delphi. Si vraiment ce projet est nécessaire pour vous en Delphi, j'essayerais à votre place de contacter les services techniques d'Embarcadero (Je ne sais toujours pas comment on fait, i.e. quelle est la démarche officielle). De toute façon, dans un sens quelque chose n'est pas net (ANSI), et de l'autre, à priori, il n'y a aucune impossibilité technique,... ni aucune information sur la manière de pratiquer en Delphi. Le minimum est quand même de se mettre au niveau de la concurrence.

    Par contre du projet Qt vers le Bloc-notes de Windows 8.1 et dans le sens inverse, le glisser/coller ne fonctionne pas.

    Je ne peux malheureusement pas plus vous aider sauf à faire un petit tour du côté de Qt
    Dernière modification par Invité ; 20/07/2015 à 12h51.

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/12/2013, 16h06
  2. Réponses: 2
    Dernier message: 28/02/2012, 00h05
  3. [delphi 7] drag drop outlook vers delphi
    Par PH69 dans le forum Delphi
    Réponses: 2
    Dernier message: 30/08/2006, 15h54
  4. Comment faire du Drag&Over et Drag&Drop sur un TTreeView ?
    Par steph_1 dans le forum Composants VCL
    Réponses: 1
    Dernier message: 16/11/2005, 17h51

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