- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
WM_KEYDOWN: begin
if GetAsyncKeyState(VK_CONTROL) <> 0 then case W of
integer('X') : SendMessage(H, WM_CUT, 0, 0);
integer('C') : SendMessage(H, WM_COPY, 0, 0);
integer('V') : SendMessage(H, WM_PASTE, 0, 0);
integer('Z') : SendMessage(H, WM_UNDO , 0, 0);
integer('Y') : ReDo(H);
integer('A') : SelectAll(H);
VK_INSERT : SendMessage(H, WM_COPY, 0, 0);
VK_PRIOR : MoveCaretLine (H, -1000000);
VK_NEXT : MoveCaretLine (H, 1000000);
VK_DELETE : SendMessage(H, WM_CLEAR, 0, 0);
// end else if GetAsyncKeyState(VK_ALT) then case W of
// VK_BACK : SendMessage(H, WM_UNDO , 0, 0);
end else if GetAsyncKeyState(VK_SHIFT) <> 0 then case W of
VK_DELETE : SendMessage(H, WM_CUT , 0, 0);
VK_INSERT : SendMessage(H, WM_PASTE, 0, 0);
end else case W of
VK_SHIFT : SDown(H);
VK_LEFT : MoveCaretSymbol (H, -1);
VK_RIGHT : MoveCaretSymbol (H, 1);
VK_UP : MoveCaretLine (H, -1);
VK_DOWN : MoveCaretLine (H, 1);
VK_PRIOR : MoveCaretLine (H, -MaxLinesInScreenByH(H));
VK_NEXT : MoveCaretLine (H, MaxLinesInScreenByH(H));
VK_DELETE : DeleteSymbol(H, False);
end;
DrawText(H);
Exit;
end;
Пишу свой винапи-класс типа Edit.
Так сделаны горячие клавиши.