Einzelnen Beitrag anzeigen

Jakson

Registriert seit: 10. Mär 2006
34 Beiträge
 
#10

AW: Memo - STRG+V deaktivieren

  Alt 2. Aug 2013, 10:35
Das mit dem MemoWndProc hat bei mir nicht geklappt. Stattdessen verwende ich OnKeyDown.

Bei mir schaut die Funktion so aus:
Delphi-Quellcode:
procedure TF_ReportConfig.Memo_RTF_KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
var MyHandle : THandle;
    TextPtr : PChar;
    RtfEdit : TRichEdit;
    Format : DWord;
begin // uses ClipBrd
{$IFNDEF UNICODE}
  Format := CF_TEXT;
{$ELSE}
  Format := CF_UNICODETEXT;
{$ENDIF}

 if (Sender IS TRichEdit) AND (ssCtrl IN Shift) AND (Key = ORD('V')) then
  begin
   RtfEdit := Sender AS TRichEdit;
   if RtfEdit.PlainText then
    begin
     if ClipBoard.HasFormat(Format) then
      begin
       ClipBoard.Open;
       try
        MyHandle := Clipboard.GetAsHandle(Format);
        TextPtr := GlobalLock(MyHandle);
        RtfEdit.SelText := StrPas(TextPtr);
        GlobalUnlock(MyHandle);
        Key := 0;
       finally
        Clipboard.Close;
       end;// finally
      end;
    end;
  end;
end;
  Mit Zitat antworten Zitat