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

Free Pascal Discussion :

[Free Pascal] Envoyer des données au presse-papier


Sujet :

Free Pascal

  1. #1
    Membre habitué

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 192
    Points : 176
    Points
    176
    Par défaut [Free Pascal] Envoyer des données au presse-papier
    Bonjour,

    en FreePascal, je cherche à envoyer des données vers le presse papier pour les récupérer dans une autre application windows.

    supposons que je demande à mon programme une info sur un client en lui demandant son n° de référence, je voudrais en plus de l'affichage (de son adresse par exemple) la stocker dans le presse papier pour éventuellement la récupérer dans un tableur ...

    j'ai cherché avec GetClipboardData mais je ne trouve pas la solution...

    merci si quelqu'un à une petite idée ..
    Un bon exemple vaut mieux qu'une longue explication confuse...

  2. #2
    Membre éclairé Avatar de Tuxico
    Profil pro
    Étudiant
    Inscrit en
    Août 2003
    Messages
    662
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2003
    Messages : 662
    Points : 770
    Points
    770
    Par défaut
    pourquoi ne pas enregister dans un fichier?
    ★ Pascal/Java/C/xhtml,css/SQL/Mips
    ★ Linux/unix

  3. #3
    Membre expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Points : 3 369
    Points
    3 369
    Par défaut
    Citation Envoyé par Tuxico
    pourquoi ne pas enregister dans un fichier?
    Peut-être parce qu'il veut utiliser le presse-papier ?

    La lecture et l'écriture dans le presse-papier sont des choses assez simples pour lesquelles on trouve de (très) nombreux code-sources. Il y a un problème particulier ?

    @++
    Règles du forum
    F.A.Q Pascal

    Pour me joindre (aucune question technique, merci)

  4. #4
    Membre éclairé Avatar de Tuxico
    Profil pro
    Étudiant
    Inscrit en
    Août 2003
    Messages
    662
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2003
    Messages : 662
    Points : 770
    Points
    770
    Par défaut
    ah we sorry pour moi presse papier c'était bloc notes lol -_-'
    plus l'habitude de windows désolé
    ★ Pascal/Java/C/xhtml,css/SQL/Mips
    ★ Linux/unix

  5. #5
    Membre habitué

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 192
    Points : 176
    Points
    176
    Par défaut
    Bonsoir,

    le presse papier est rempli avec des Ctrl+C (sur du texte) ou imprim ecran.. (sur une image) . J'avais bien pensé à passer par un fichier mais ce n'est pas le but car je veux récuperer l'info avec un Ctrl+v par exemple dans une appplication windows autre.

    En fait j'arrive en FreePascal à lire le contenu du presse papier (mode texte) et à l'afficher avec un writeln(pointeur);

    mais je n'ai pas réussi ni trouvé de code source pour remplir ce presse papier depuis FreePascal (je ne parle pas de Delphi où ça je sais faire...)

    voila si quelqu'un à un source TP ou FreePascal ou me donner une idée

    merci d'avance.
    Un bon exemple vaut mieux qu'une longue explication confuse...

  6. #6
    Membre expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Points : 3 369
    Points
    3 369
    Par défaut
    Bonjour,

    J'ai écrit en 5 minutes le code suivant. Il a l'air de fonctionner
    Commenté et indenté, y'a plus qu'à pomper !

    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
    41
    42
    43
    uses
      Windows, Strings;
     
     
    function CopyToClipboard(const S: string): Boolean;
    var
      hGlobalMem: HGlobal;
      lpGlobalMem: LPVoid;
    begin
      Result := False;
      { Allocation de l'espace mémoire }
      hGlobalMem := GlobalAlloc(GHND, Length(S) + 1);
      if hGlobalMem <> 0 then
      begin
        { Fixation en mémoire et obtention d'un pointeur }
        lpGlobalMem := GlobalLock(hGlobalMem);
        if lpGlobalMem <> nil then
        begin
          { Copie de la chaîne }
          StrPCopy(PChar(lpGlobalMem), S);
          if Integer(GlobalUnlock(hGlobalMem)) = 0 then
          begin
            { Ouverture du presse-papier }
            if OpenClipboard(0) then
            begin
              { On vide le presse-papier avant de le remplir }
              EmptyClipboard;
              { On place la chaîne dedans }
              Result := (SetClipboardData(CF_TEXT, hGlobalMem) <> 0);
              { On referme le presse-papier }
              CloseClipboard;
            end;
          end;
        end;
      end;
      { ATTENTION ! Il ne faut pas libérer la mémoire allouée
        pour le presse-papier : le système en devient le propriétaire }
    end;
     
     
    begin
      CopyToClipboard('Texte copié avec succès');
    end.
    @++
    Règles du forum
    F.A.Q Pascal

    Pour me joindre (aucune question technique, merci)

  7. #7
    Membre habitué

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 192
    Points : 176
    Points
    176
    Par défaut
    bonsoir..

    vous êtes trop fort... et votre programme trop bien fait !!

    je ne vais plus oser poser des questions si ça continue !

    je crois que j'ai tout à apprendre...

    merci en tous cas d'avoir pris le temps de me répondre.

    JoseF
    Un bon exemple vaut mieux qu'une longue explication confuse...

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

Discussions similaires

  1. Envoyer des données mysql vers Excel
    Par thierry198 dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 09/11/2005, 19h59
  2. [Free Pascal] Intégrer des valeurs dans un menu dynamique
    Par boullery dans le forum Free Pascal
    Réponses: 16
    Dernier message: 30/03/2005, 17h04
  3. atteindre un ancre en envoyant des données
    Par adilou1981 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 29/03/2005, 11h59
  4. envoyer des données par l'intermédiaire d'un bouton
    Par mathilde50 dans le forum Access
    Réponses: 26
    Dernier message: 28/10/2004, 16h49
  5. [socket] envoyer des données vers un port com
    Par Slimer dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 20/07/2004, 17h35

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