Это более элегантно:
procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
if Key = ^A then
begin
(Sender as TMemo).SelectAll;
Key := #0;
end;
end;
В управлении TMemo Delphi 7 попытка сделать комбинацию клавиш Ctrl + A
для выбора всего не делает ничего (не выбирает все). Поэтому я сделал эту процедуру:
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;
Есть ли трюк, чтобы мне не пришлось выполнять эту процедуру? А если нет, значит, эта процедура выглядит нормально?
delphi,keyboard-shortcuts,delphi-7,tmemo,
Это более элегантно:
procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
if Key = ^A then
begin
(Sender as TMemo).SelectAll;
Key := #0;
end;
end;
Я использовал предыдущий ответ и обсуждение для создания автономного компонента, который обрабатывает событие 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;
Другим способом добавления поведения «выбрать все» ко всем компонентам в форме является добавление списка действий в вашу форму со стандартным выбором всех действий.