Einzelnen Beitrag anzeigen

Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#26
  Alt 6. Mai 2003, 11:37
Ich habe den Thread nicht mitverfolgt, aber es hat mich gerade mal in den Fingern gejuckt. Anbei eine kleine Komponente, welche wie das TMemo ist, allerdings copy, cut & paste nicht zulässt. Wenn es passt: schön; wenn nicht: na ja

Delphi-Quellcode:
unit NoCopyMemo;

interface

uses
  Windows, Messages, StdCtrls;

type
  TNoCopyMemo = class(TMemo)
  private
    procedure WMCOPY(var Msg: TWMCopy); message WM_COPY;
    procedure WMCUT(var Msg: TWMCut); message WM_CUT;
    procedure WMPASTE(var Msg: TWMPaste); message WM_PASTE;
    procedure WMGETTEXT(var Msg: TWMGetText); message WM_GETTEXT;
  end;

implementation

{ TNoCopyMemo }

procedure TNoCopyMemo.WMCOPY(var Msg: TWMCopy);
begin
  Msg.Result := -1;
end;

procedure TNoCopyMemo.WMCUT(var Msg: TWMCut);
begin
  Msg.Result := -1;
end;

procedure TNoCopyMemo.WMGETTEXT(var Msg: TWMGetText);
begin
  if Msg.TextMax >= 5 then
    StrPCopy(Msg.Text, 'doch')
  else
    Msg.TextMax := 5;
  Msg.Result := -1;
end;

procedure TNoCopyMemo.WMPASTE(var Msg: TWMPaste);
begin
  Msg.Result := -1;
end;

end.
......

P.S. Damit sind auch die Funktionen des Kontextmenüs inaktiv - auch wenn diese noch angezeigt werden. Das Kopieren und ähnliches läuft i.A. über entsprechende Windowsmessages, welche einfach abgefangen werden können.
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat