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.