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 :

Désactiver copier/coller dans un Tedit


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de youhibadelphi
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Juin 2009
    Messages : 240
    Par défaut Désactiver copier/coller dans un Tedit
    Salut
    mes amis comment faire pour désactiver copier /coller dans un Tedit.
    Et merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 12
    Par défaut
    Salut

    Je ne sais pas si c'est possible, en tout cas j'en ai pas entendu parler.
    Sinon tu peux peut être utiliser l'événement OnChange du Tedit.
    Par exemple si t'as une variable qui mémorise la valeur actuelle du Tedit :

    Tu initialises cette variable avec la valeur du Tedit.
    Puis dans l'événement OnChange, tu compares la longueur de la variable avec la nouvelle valeur du Tedit.
    Si il y a une différence de nombre de caractère supérieure à 1, alors il y a eu un "copier coller".
    Et tu peux remplacer la valeur du Tedit par ta variable pour revenir a l'état précédent comme si il n'y avait pas eu de "copier coller".
    Si la différence n'était que de 1, là tu écrases la valeur de la variable par la nouvelle valeur du Tedit.

    En espérant ne pas t'avoir embrouillé xD

    Ça fait peut être un peu bidouille par rapport a une solution magique qui interdirait le copier coller, mais si ça peut t'aider quand même

  3. #3
    Membre Expert
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Par défaut
    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    unit unit1;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, stdctrls;
     
    type
      { TEdit overclass ---------------------------- }
     
      TEditOption  = (eoAllowEdit, eoAllowContextMenu, eoAllowCopy, eoAllowPaste, eoAllowCut, eoAllowUndo);
    {
    eoAllowEdit : permet d'activer ou non la saisie au clavier
    eoAllowContextMenu : permet d'activer ou non le menu contextuel par defaut
    eoAllowCopy : permet d'activer ou non le raccourcis CTRL+C (copier)
    eoAllowPaste: permet d'activer ou non le raccourcis CTRL+V (coller)
    eoAllowCut : permet d'activer ou non le raccourcis CTRL+X (couper)
    eoAllowUndo: permet d'activer ou non le raccourcis CTRL+Z (annuler)
    }
      TEditOptions = set of TEditOption;
     
      TEdit = Class(StdCtrls.TEdit)
      private
        FEditOptions : TEditOptions;
        procedure WMChar(var Message: TWMChar); message WM_CHAR;
        procedure WMContextMenu(var Message: TWMContextMenu); message WM_CONTEXTMENU;
        procedure WMPaste(var Message); message WM_PASTE;
        procedure WMCopy(var Message); message WM_COPY;
        procedure WMCut(var Message); message WM_CUT;
        procedure WMUndo(var Message); message WM_UNDO;
      public
        constructor Create(AOwner : TComponent); override;
        Property EditOptions : TEditOptions
                 Read FEditOptions
                 Write FEditOptions
                 default [eoAllowEdit, eoAllowContextMenu, eoAllowCopy, eoAllowPaste, eoAllowCut, eoAllowUndo];
      end;
     
      { --------------------------------- }
     
      TForm1 = class(TForm)
        Edit1: TEdit;
        Edit2: TEdit;
        procedure FormCreate(Sender: TObject);
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.dfm}
     
    { TEdit overclass }
     
    constructor TEdit.Create(AOwner : TComponent);
    begin
      inherited create(AOwner);
      FEditOptions := [eoAllowEdit, eoAllowContextMenu, eoAllowCopy, eoAllowPaste, eoAllowCut, eoAllowUndo];
    end;
     
    procedure TEdit.WMChar(var Message: TWMChar);
    begin
      if eoAllowEdit in FEditOptions Then
         Inherited;
    end;
     
    procedure TEdit.WMContextMenu(var Message: TWMContextMenu);
    begin
      if eoAllowContextMenu in FEditOptions Then
         Inherited;
    end;
     
    procedure TEdit.WMCopy(var Message);
    begin
      if eoAllowCopy in FEditOptions Then
         Inherited;
    end;
     
    procedure TEdit.WMPaste(var Message);
    begin
      if eoAllowPaste in FEditOptions Then
         Inherited;
    end;
     
    procedure TEdit.WMCut(var Message);
    begin
      if eoAllowCut in FEditOptions Then
         Inherited;
    end;
     
    procedure TEdit.WMUndo(var Message);
    begin
      if eoAllowUndo in FEditOptions Then
         Inherited;
    end;
     
     
     
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      // toute les options sont désactivées, impossible donc de modifier le contenus de Edit2
      Edit2.EditOptions := [];
    end;
    [ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ]
    Ma messagerie n'est pas la succursale du forum... merci!

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 582
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 582
    Par défaut
    Bonjour à toutes et à tous,

    @ youhibadelphi, faut voir ce que tu fais avec ton Tedit, si tu as déjà ton texte écrit par défaut ou si tu l'ajoutes après quoi qu'il en soit, tu peux envisager de placer ton Tedit sur un Tpanel avec les mêmes dimensions et mettre la propriété enabled à false du Tpanel (propriété enabled du Tedit reste à true) comme cela le texte du Tedit apparaîtra normalement mais impossible de le sélectionner donc de le copier.

    @+,

    Cincap

  5. #5
    Membre éclairé Avatar de youhibadelphi
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Juin 2009
    Messages : 240
    Par défaut
    Salut seb_homme_parfait
    Merci pour ta participation mais je crois de ta solution nécessite un peu plus de condition, je crois q'il y a des codes a ajouter pour désactivé copier/coller dans les Tedit.
    Merci.

  6. #6
    Membre éclairé Avatar de youhibadelphi
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Juin 2009
    Messages : 240
    Par défaut
    Salut Dr.Who
    Merci j'ai bien copié le code.
    Merci beaucoup.

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

Discussions similaires

  1. [Lazarus] Désactiver le copier/coller dans un TEdit
    Par Invité dans le forum Lazarus
    Réponses: 5
    Dernier message: 03/07/2011, 16h47
  2. Réponses: 3
    Dernier message: 29/03/2005, 13h39
  3. gerer le copier/coller dans une richEdit
    Par SBP dans le forum MFC
    Réponses: 4
    Dernier message: 10/02/2005, 21h00
  4. Protéger Couper/Copier/Coller dans un Objet en développement
    Par tibi666 dans le forum Composants VCL
    Réponses: 14
    Dernier message: 06/12/2004, 14h52
  5. [Swing]copier coller... dans le menu.
    Par parksto dans le forum Composants
    Réponses: 3
    Dernier message: 10/05/2004, 22h56

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