秋·风

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

修复TDBMemo只读不能使用Ctrl+C复制文字的Bug

TDBMemo只读时不能使用Ctrl+C复制文字,只需按下面修改就可以。
打开lazarus\lcl\include\dbmemo.inc
找到:
procedure TDBMemo.KeyDown(var Key: Word; Shift: TShiftState);
begin
inherited KeyDown(Key, Shift);

  case key of
    VK_ESCAPE:
      begin
       //cancel out of editing by reset on esc
       FDataLink.Reset;
       SelectAll;
       Key := VK_UNKNOWN;
      end;
    VK_DELETE, VK_BACK:

添加红色代码:

procedure TDBMemo.KeyDown(var Key: Word; Shift: TShiftState);
begin
  inherited KeyDown(Key, Shift);

  case key of
    VK_C:
    begin//Copy
      if (Shift = [ssModifier]) then
      begin
        CopyToClipBoard;
        Key := 0;
        Exit;
      end;
    end;
    VK_ESCAPE:
      begin
       //cancel out of editing by reset on esc
       FDataLink.Reset;
       SelectAll;
       Key := VK_UNKNOWN;
      end;

重新编译应用就可以在只读时使用Ctrl+C复制文字。

posted on 2026-07-10 19:15  秋·风  阅读(58)  评论(0)    收藏  举报