Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.12.20;
Скачать: CL | DM;

Вниз

не работает 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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.01 c
15-1255897809
Юрий
2009-10-19 00:30
2009.12.20
С днем рождения ! 19 октября 2009 понедельник


15-1255357265
Nic
2009-10-12 18:21
2009.12.20
Терминалка через web-интерфейс? Возможно ли?


1-1229068695
Андрей Пл
2008-12-12 10:58
2009.12.20
DBChart показать данный о точке!


1-1229178246
postedman
2008-12-13 17:24
2009.12.20
Объектный процедурный тип


2-1257373411
Drowsy
2009-11-05 01:23
2009.12.20
Триггеры в Interbase.