在Delphi 7的TMemo控件中,尝试按键组合Ctrl + A来选择all不会做任何事情(不会全部选择)。 所以我做了这个程序:

procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var
  C: String;
begin
  if ssCtrl in Shift then begin
    C:= LowerCase(Char(Key));
    if C = 'a' then begin
      Memo1.SelectAll;
    end;
  end;
end;

有没有一个技巧,所以我不必这样做? 如果没有,那么这个程序看起来不错吗?

===============>>#1 票数:25 已采纳

这更优雅:

procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
  if Key = ^A then
  begin
    (Sender as TMemo).SelectAll;
    Key := #0;
  end;
end;

===============>>#2 票数:0

我使用前面的答案和讨论来创建一个独立的组件来处理我在小型测试程序中使用的KeyPress事件。

TSelectMemo = class(TMemo)
protected
  procedure KeyPress(var Key: Char); override;
end;

...

procedure TSelectMemo.KeyPress(var Key: Char);
begin
  inherited;
  if Key = ^A then
    SelectAll;
end;

向表单上的所有组件添加“全选”行为的另一种方法是使用标准的全部操作向表单添加操作列表。

  ask by Jerry Dodge translate from so

未解决问题?本站智能推荐:

1回复

TMemo最大宽度

有没有办法让TMemo显示长于1024的文本显示为1行? 看看这个简单的代码: 长文本“s”将以多行显示。 Memo1将自动包装1024个字符后的文本。
2回复

使TMemo显示部分可见的线条

是否可以使TMemo显示部分可见的线条? 我正在寻找一种无需自定义渲染的本地方法。 我为不熟悉此问题的人制作了一个示例屏幕截图: 如您所见,在我标记为红色的区域中,有足够的空间来显示默认情况下不可见的下一行的某些部分。 有一些组件,例如TListBox ,它们显示部分可
3回复

捕获CTRL + S时如何摆脱窗口声音?

在我的应用程序中,当我按下CTRL + S ,我的表单(启用了键预览)捕获并保存文档。 但是当焦点在例如编辑控件中时,我会听到恼人的“丁”声,或者一般来说,听到窗口声音。 我该如何避免这种声音? 这是我的表格捕获这个关键事件...... PS - 是否有更标准的方法来捕获这些事
1回复

为什么CTRL + C不能用于TMemo组件? (Vista + Delphi 7)

为什么不能将TDBMemo组件中的选定文本复制到剪贴板中? DELPHI 7,Windows Vista。 以下代码无法捕获ctrl + c事件,而ctrl + a工作正常。 感谢名单
1回复

Firemonkey TMemo文本自动回车

TMemo是否可以自动显示已调整为TMemo宽度的数据库中的一行? 我的意思是,在我的数据库中,我有:“ 123456789123456789123”,例如,我的tmemo的宽度仅为10个字符。 TMemo是否可以通过这种方式自动显示文本? 有什么建议吗?
1回复

先进的TMemo功能

告诉我,美好的一天,是否可以实现以下功能的组件TMemo: 在TMemo中输入文本,开始搜索您输入的第一个字符; 如果找到匹配项,我们得出结论,即列表中的选择(其元素显示为链接),然后单击在TMemo中突出显示的找到的文本。 单击链接右侧-转到找到与第2项相似的文本
2回复

Delphi XE4 FireMonkey TMemo透明? (IOS)

有没有办法让Delphi / iOS / FireMonkey中的TMemo透明化? 在选择+右键单击备忘录控件时,我看不到自己编辑样式的任何方法...
2回复

鼠标坐标到Firemonkey TMemo组件中的插入位置

处理Firemonkey上的鼠标/拖放事件TMemo Component提供了Mousecursor坐标。 有没有一种方法可以根据鼠标坐标来计算CaretPosition? 我想将文本拖到TMemo中,并且此文本应插入到当前的MouseCoordinates中。
1回复

在delphi中读取Tmemo的最后一行

经过很长时间的尝试....决定寻求帮助。 我正在尝试阅读发送到Delphi中的Tmemo的最后一行。 我正在将代码行一一发送给开发人员。 登上开发人员。 电路板每次都需要发送不同的代码行。 我的最终目标是回读开发人员的最后一行。 板发回。 例如 设置ATT = 7
1回复

快速搜索Tmemo线的方法

我在允许用户输入项目列表的表单上有一个TMemo。 人们可以在这里输入许多项目。 当他们单击“保存”时,将检查TMemo的内容,然后将其添加到数据库中。 我在TStringList中有第二个列表,我遍历了该列表并检查是否有任何项目包含在TMemo中。 在坚果壳中看起来像这样