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; |
Partager