![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
нажатие [D7]
Pacific © (2007-10-02 22:53:00)Здравствуйте! Как сделать чтоб при нажатии ctr+enter нажималась кнопка form2.button1 ?
Dmitry S (2007-10-03 04:22:00) [1]
> Sleep(100);
Это же на целых 100 мс прога зависнет... ИМХО надо в потоке делать!
procedure UpDownButtonProc(ButtonHandle:THandle);stdcall;
begin
SendMessage(ButtonHandle, BM_SETSTATE, 1, 0);
Sleep(100);
SendMessage(ButtonHandle, BM_SETSTATE, 0, 0);
SendMessage(ButtonHandle, BM_CLICK, 0, 0);
ExitThread(0);
end;
procedure UpDownButton(ButtonHandle:THandle);
var c:Cardinal;
begin
CreateThread(nil, 0, @UpDownButtonProc, Pointer(ButtonHandle), 0, c);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
UpDownButton(Button1.Handle);
end;
:)
{RASkov} (2007-10-03 02:55:00) [2]> [10] Pacific (02.10.07 23:32)
> GetKeyState(VK_LCONTROL) чет я не прикололся
Да ладно.... "дурь" отменная... с F1 ваще улет)
{RASkov} (2007-10-03 02:39:00) [3]> [24] korneley © (03.10.07 02:25)
> А чем лучше [7] - го варианта? И все равно через сообщения.
Ну немного разное, вообще-то, поведение, но в данном случае ничем не отличается, но тоже как вариант....
Например способ [23] там нет имитации мыши сообщениями... Клик идет следом методом(процедурой) самой кнопки...
А сообщениями идет именно "утопление" кнопки....
и вся, в общем-то, разница.)
korneley (2007-10-03 02:25:00) [4]
> {RASkov} © (03.10.07 02:15) [23]
А чем лучше [7] - го варианта? И все равно через сообщения.
{RASkov} (2007-10-03 02:15:00) [5]
procedure TForm1.Button2Click(Sender: TObject);
begin
SendMessage(Button1.Handle, BM_SETSTATE, 1, 0);
Sleep(100);
SendMessage(Button1.Handle, BM_SETSTATE, 0, 0);
Button1.Click;
end;
korneley (2007-10-03 02:01:00) [6]
> Плохиш ©
> Если кнопка по клику мышки будет визуально нажиматься/отжиматься,
> то и при вызове метода Click будет тоже самое...
А вот и нет. Событие - да, вызовется, а вот прорисоваться в даун/ап - извольте. Проверено в D7.
Плохиш (2007-10-03 01:56:00) [7]
> korneley © (03.10.07 01:53) [20]
>
> > "Кнопка нажмись! Раз-два!"Button1.Click
> Неее!!! Ему надо, чтобы вглюч/отглюч на форме видно было, во как!
Если кнопка по клику мышки будет визуально нажиматься/отжиматься, то и при вызове метода Click будет тоже самое...
korneley (2007-10-03 01:53:00) [8]
> "Кнопка нажмись! Раз-два!"Button1.Click
Неее!!! Ему надо, чтобы вглюч/отглюч на форме видно было, во как!
Плохиш (2007-10-03 01:33:00) [9]
> Как еще программно нажать кнопку TButton?
"Кнопка нажмись! Раз-два!"
Button1.Click
korneley (2007-10-02 23:52:00) [10]
> Кулхацкер, доки нам не писаны
Кстати, а почему? (в-смысле кул... :) Как еще программно нажать кнопку TButton? Без отсылки сообщений? Я в полнейших косяках :)))
korneley (2007-10-02 23:45:00) [11]
> VK_RETURN он вроде, щас лень вспоминать
Дык, все равно 13, со времен DOS - a, типа скан-код.
tesseract (2007-10-02 23:40:00) [12]VK_RETURN он вроде, щас лень вспоминать.
korneley (2007-10-02 23:38:00) [13]ночно = точно
korneley (2007-10-02 23:37:00) [14]
> onkeydown - полушь ты свой VK_ENTER + другое.
А, блин, ночно! Там же еще ShiftState приходит :)
korneley (2007-10-02 23:36:00) [15]
> Pacific (02.10.07 23:32) [10]
> GetKeyState(VK_LCONTROL) чет я не прикололся
Ну тогда сам лови на OnKeyUp/Down и запоминай положение Control
tesseract (2007-10-02 23:35:00) [16]
> GetKeyState(VK_LCONTROL) чет я не прикололся
onkeydown - полушь ты свой VK_ENTER + другое.
korneley (2007-10-02 23:33:00) [17]Не, ну автор ничего не сказал об интерфейсе кроме "нажать кнопку"... Почему бы и не послать ей (кнопке) сообщения мыши?
Pacific (2007-10-02 23:32:00) [18]GetKeyState(VK_LCONTROL) чет я не прикололся
tesseract (2007-10-02 23:28:00) [19]
> #13, конечно же :)
А если он нажат не в фокусе контрола ? А там в фокусе кнопки ?
> Button2.Perform(WM_LBUTTONDOWN, 0, 0); sleep(500); Button2.
> Perform(WM_LBUTTONUP,0, 0);Это если проверка Ctrl состоялась
Кулхацкер, доки нам не писаны.
korneley (2007-10-02 23:25:00) [20]
> ...На OnKeyPress при символе #10...
#13, конечно же :)