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

Lazarus Pascal Discussion :

Transfert d'une ligne d'un Tmemo dans un Tedit [Lazarus]


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de Modulpro
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2010
    Messages : 76
    Par défaut Transfert d'une ligne d'un Tmemo dans un Tedit
    Bonjour,
    je suis débutant sur Lazarus.( donc ma question va peut être paraitre bête)

    Je me demandais s'il était possible de placer le contenu d'une ligne entière de Tmemo dans un Tedit par un simple clique simple sur cette ligne.
    Peut être le Tmemo n'est il pas le bon composant pour cette opération?
    Si la réponse est oui, merci de m'indiquer comment proceder.

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


    Est-ce que le Tmemo est adapté ? Cela dépend de ce que vous cherchez à faire. Si c'est une liste contenant de simples lignes... Non.

    Ensuite, en supposant que le Tmemo convienne, cela dépend également de la manière dont est sélectionnée la ligne. Par code ou par clic sur le Tmemo (la ligne étant déjà sélectionnée par code) ou par utilisation de la souris directement dans le Tmemo pour en sélectionner un extrait de son contenu...
    En supposant que cela soit le bon composant et la dernière hypothèse de sélection, je procéderais ainsi : Une fois le Tmemo rempli, vous sélectionnez à la souris la ligne, les lignes ou un extrait quelconque. Il faut alors déclencher le remplissage du TEdit à la fin de l'opération de sélection : dans l'évènement OnMouseUp du TMemo (évènement qui correspond à la fin de la sélection), vous pouvez récupérer ce qui est sélectionné dans le TMemo par Memo1.SelText.
    Mais avant de l'affecter au TEdit, soit vous vérifiez que ce qui est sélectionné ne constitue qu'une seule ligne (si telle est votre demande), soit vous faites un petit traitement pour vous débarasser des retours à la ligne.

    Cordialement. Gilles
    Dernière modification par Invité ; 03/10/2010 à 09h47.

  3. #3
    Membre éprouvé Avatar de Modulpro
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2010
    Messages : 76
    Par défaut
    Bonjour,
    Merci pour votre réponse, la solution fonctionne bien : en effet, ce serai pour selectionner directement la ligne avec la sourie.
    Cependant, je me demandais s'il n'existait pas un composant qui permette de:
    - afficher plusieures lignes de caractères en lecture seule (équivaut au TMemo avec readonly:=true)
    - gérer l'évenement onclick pour chaque ligne
    - acceder séparément à chacunes des lignes (quelquechose du genre " nom-du-composant[n°ligne] "

    En effet, mon but est de copier l'integralité de la ligne par un simple clique dessus (même si la selection n'est déjà pas mal).
    Ou bien est il possible de configurer le Tmemo pour qu'il sélectionne automatiquement la ligne sur laquelle on clique (et utiliser dans ce cas SelText). J'ai cherché dans les évenements du TMemo, mais n'ais rien trouvé dessus.

    Encore merci pour la réponse.

  4. #4
    Membre chevronné Avatar de winow
    Inscrit en
    Novembre 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 60

    Informations forums :
    Inscription : Novembre 2004
    Messages : 669
    Par défaut
    Bonjour
    Essaye d'ameliorer cela si ca peut te convenir.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    procedure TForm1.Memo1Click(Sender: TObject);
    begin
     
     with TMemo(Sender) do
       CaretPos:= Point(0, CaretPos.Y);
       Memo1.SelLength:= length(Memo1.Lines[Memo1.CaretPos.Y]);
       Memo1.CutToClipboard;
       Edit1.Clear;
       Edit1.PasteFromClipboard;
     
    end;
    Ce code marche sous Ubuntu (Linux)
    A+

  5. #5
    Membre éprouvé Avatar de Modulpro
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2010
    Messages : 76
    Par défaut
    Bonjour,

    Merci pour la réponse. Je viens d'essayer cette solution, qui fonctionne effectivement très bien (je travaille sous XP ).
    Cependant, le clique sur une ligne provoquait la supression de cette ligne dans le memo (et donc son apparition dans le Tedit).
    Pour palier à ce problème, j'ai remplacé le "Memo1.CutToClipboard;" par "Memo1.CopyToClipboard;". La procédure est maintenant fonctionelle, mon probleme initial est donc résolu.

    Merci beaucoup pour votre aide.

  6. #6
    Membre Expert

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Par défaut
    Salut

    Il y a plus simple que de passer par le presse papier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Edit1.Text:=Memo1.SelText;
    Bonne chance

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/01/2008, 22h40
  2. Réponses: 0
    Dernier message: 06/12/2007, 11h08
  3. copier une ligne et la coller dans une nouvelle
    Par alexkickstand dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/09/2007, 20h10
  4. Réponses: 4
    Dernier message: 11/08/2006, 11h09
  5. ajout d'une ligne de la base dans un vecteur
    Par yousfi.z dans le forum JDBC
    Réponses: 1
    Dernier message: 09/08/2006, 21h58

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