Форум: "Основная";
Текущий архив: 2009.12.20;
Скачать: [xml.tar.bz2];
Внизне работает CTRL-C !!!! Найти похожие ветки
← →
Yozch1 (2008-12-02 15:36) [0]Бред какой-то. при нажатии CTRL-C в onKeyDown упорно передается ssCtrl и key=17, но никак не ord(С) (67)
проходит только вариант при нажатии еще и SHIFT тогда передается ssCtrl, ssShift и С, но это же неправильно?
Где копать, помогите, не пойму что за беда!
← →
KilkennyCat © (2008-12-02 15:38) [1]Может, клавиатура продвинутая, и сразу посылает команду "копировать"? :)
← →
KilkennyCat © (2008-12-02 15:41) [2]ладно, подскажу: посмотри код Ctrl
← →
Leonid Troyanovsky © (2008-12-02 15:50) [3]
> Yozch1 (02.12.08 15:36)
> но никак не ord(С) (67)
Докажи.
--
Regards, LVT.
← →
clickmaker © (2008-12-02 16:04) [4]> Может, клавиатура продвинутая, и сразу посылает команду
> "копировать"? :)
китайская?
тогда она и "вставить" должна сразу посылать
← →
Германн © (2008-12-02 16:33) [5]
> тогда она и "вставить" должна сразу посылать
>
Вот она и вставляет и посылает
← →
Yozch1 (2008-12-02 17:08) [6]
> ладно, подскажу: посмотри код Ctrl
Я знаю что это за код. Мне непонятно почему именно он в Key стоит, а не код нажатой одновременно с ctrl кнопки.
← →
Leonid Troyanovsky © (2008-12-02 18:02) [7]
> Yozch1 (02.12.08 17:08) [6]
> Key стоит, а не код нажатой одновременно с ctrl кнопки.
Это код нажатой клавиши vk_control.
За ним, очевидно, последуют коды клавиш, нажатых после того.
--
Regards, LVT.
← →
KilkennyCat © (2008-12-02 18:05) [8]Key равен последней нажатой клавиши.
← →
stas © (2008-12-02 18:06) [9]Yozch1 (02.12.08 15:36)
if (key<>17) then...
← →
KilkennyCat © (2008-12-02 18:09) [10]GetKeyboardState избавляет от мучений раз и навсихда
← →
Leonid Troyanovsky © (2008-12-02 18:48) [11]
> KilkennyCat © (02.12.08 18:09) [10]
> GetKeyboardState избавляет от мучений раз и навсихда
А зачем ему мучения?
Проверил ssCtrl и др. при поcтуплении Ord("C") - и свободен.
--
Regards, LVT.
← →
KilkennyCat © (2008-12-02 19:40) [12]
> Leonid Troyanovsky © (02.12.08 18:48) [11]
Cогласен. Но потом он захочет еще более сложную комбинацию ловить и снова будут мучения.
← →
Yozch1 (2008-12-03 08:11) [13]Если бы так просто.
Весь гимор как раз и в том и состоит, что такое не работает
if (key=Ord("C"))
then
if (ssCtrl in Shift) then
begin
showmessage("sdfsdfsdfd");
(FEdit as TTntcustomEdit).CopyToClipboard;
key := 0;
end;
и я не могу понять причину.
← →
Palladin © (2008-12-03 08:37) [14]попробуй у формы (или где ты там ловишь) заменить WindowProc и препарировать - что же приходит прим WM_KEYUP или WM_KEYDOWN (или где ты там ловишь)
← →
Cobalt © (2008-12-09 10:17) [15]Зачем заменять WindowProc, можно WinSight"ом посмотреть.
← →
Dimka Maslov © (2008-12-10 10:36) [16]Господа!
Нажатие ctrl+c обрабатывается событием OnKeyPress, а не OnKeyDown. И сообщение на него приходит WM_CHAR, a не WM_KEYDOWN.
Следовательно, код надо писать такprocedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if Key = ^C then begin
ShowMessage(" Превед робяты!");
(FEdit as TTntcustomEdit).CopyToClipboard;
key := #0;
end
end;
← →
KilkennyCat © (2008-12-10 11:52) [17]
> Dimka Maslov © (10.12.08 10:36) [16]
> OnKeyPress, а не OnKeyDown. И сообщение на него приходит WM_CHAR, a не WM_KEYDOWN.
ну ты загнул....
Во-первых, в [11] полностью сказано КАК.
Во-вторых, утверждение [13] неверно, потому что: ord("C") необязательно даст то, что надо; учитывая [8] возможна ситуация неправильной последовательности нажимания.
В-третьих, пофиг как и где обрабатывать. Мы все умрем.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2009.12.20;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.005 c