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

Вниз

нажатие   Найти похожие ветки 

 
Pacific   (2007-10-02 22:53) [0]

Здравствуйте! Как сделать чтоб при нажатии ctr+enter нажималась кнопка form2.button1 ?


 
tesseract ©   (2007-10-02 23:06) [1]

Смотри HotKey или OnKeyDown.


 
korneley ©   (2007-10-02 23:09) [2]

На OnKeyPress при символе #10 проверять GetKeyState(VK_LCONTROL) or GetKeyState(VK_RCONTROL) и при успехе вызывать form2.button1Click(button1). Или тебе надо чтобы реально кнопка нажалась-отжалась?


 
Pacific   (2007-10-02 23:13) [3]

Надо чтобы нажалась и отжалась
Как в icq


 
Pacific   (2007-10-02 23:14) [4]

и чтоб после этого курсов был в форме memo2 :)


 
Pacific   (2007-10-02 23:15) [5]

*курсор


 
tesseract ©   (2007-10-02 23:21) [6]


> OnKeyPress


Он перестал жечь #13 ? Для Enter вроде OnKeyDown нужен.


> и чтоб после этого курсов был в форме memo2 :)


Memo2.SetFocus.


 
korneley ©   (2007-10-02 23:23) [7]

Button2.Perform(WM_LBUTTONDOWN, 0, 0);
 sleep(500);
 Button2.Perform(WM_LBUTTONUP,0, 0);

Это если проверка Ctrl состоялась


 
korneley ©   (2007-10-02 23:25) [8]


> ...На OnKeyPress при символе #10...

#13, конечно же :)


 
tesseract ©   (2007-10-02 23:28) [9]


> #13, конечно же :)


А если он нажат не в фокусе контрола ? А там в фокусе кнопки ?


> Button2.Perform(WM_LBUTTONDOWN, 0, 0);  sleep(500);  Button2.
> Perform(WM_LBUTTONUP,0, 0);Это если проверка Ctrl состоялась


Кулхацкер, доки нам не писаны.


 
Pacific   (2007-10-02 23:32) [10]

GetKeyState(VK_LCONTROL) чет я не прикололся


 
korneley ©   (2007-10-02 23:33) [11]

Не, ну автор ничего не сказал об интерфейсе кроме "нажать кнопку"... Почему бы и не послать ей (кнопке) сообщения мыши?


 
tesseract ©   (2007-10-02 23:35) [12]


> GetKeyState(VK_LCONTROL) чет я не прикололся


onkeydown - полушь ты свой VK_ENTER + другое.


 
korneley ©   (2007-10-02 23:36) [13]


> Pacific   (02.10.07 23:32) [10]
> GetKeyState(VK_LCONTROL) чет я не прикололся
Ну тогда сам лови на OnKeyUp/Down и запоминай положение Control


 
korneley ©   (2007-10-02 23:37) [14]


> onkeydown - полушь ты свой VK_ENTER + другое.
А, блин, ночно! Там же еще ShiftState приходит :)


 
korneley ©   (2007-10-02 23:38) [15]

ночно = точно


 
tesseract ©   (2007-10-02 23:40) [16]

VK_RETURN он вроде, щас лень  вспоминать.


 
korneley ©   (2007-10-02 23:45) [17]


> VK_RETURN он вроде, щас лень  вспоминать
Дык, все равно 13, со времен DOS - a, типа скан-код.


 
korneley ©   (2007-10-02 23:52) [18]


> Кулхацкер, доки нам не писаны
Кстати, а почему? (в-смысле кул... :) Как еще программно нажать кнопку TButton? Без отсылки сообщений? Я в полнейших косяках :)))


 
Плохиш ©   (2007-10-03 01:33) [19]


> Как еще программно нажать кнопку TButton?

"Кнопка нажмись! Раз-два!"

Button1.Click


 
korneley ©   (2007-10-03 01:53) [20]


> "Кнопка нажмись! Раз-два!"Button1.Click
Неее!!! Ему надо, чтобы вглюч/отглюч на форме видно было, во как!


 
Плохиш ©   (2007-10-03 01:56) [21]


> korneley ©   (03.10.07 01:53) [20]
>
> > "Кнопка нажмись! Раз-два!"Button1.Click
> Неее!!! Ему надо, чтобы вглюч/отглюч на форме видно было, во как!

Если кнопка по клику мышки будет визуально нажиматься/отжиматься, то и при вызове метода Click будет тоже самое...


 
korneley ©   (2007-10-03 02:01) [22]


> Плохиш ©

> Если кнопка по клику мышки будет визуально нажиматься/отжиматься,
>  то и при вызове метода Click будет тоже самое...
А вот и нет. Событие - да, вызовется, а вот прорисоваться в даун/ап - извольте. Проверено в D7.


 
{RASkov} ©   (2007-10-03 02:15) [23]

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:25) [24]


> {RASkov} ©   (03.10.07 02:15) [23]
А чем лучше  [7] - го варианта? И все равно через сообщения.


 
{RASkov} ©   (2007-10-03 02:39) [25]

> [24] korneley ©   (03.10.07 02:25)
> А чем лучше  [7] - го варианта? И все равно через сообщения.

Ну немного разное, вообще-то, поведение, но в данном случае ничем не отличается, но тоже как вариант....
Например способ [23] там нет имитации мыши сообщениями... Клик идет следом методом(процедурой) самой кнопки...
А сообщениями идет именно "утопление" кнопки....
и вся, в общем-то, разница.)


 
{RASkov} ©   (2007-10-03 02:55) [26]

> [10] Pacific   (02.10.07 23:32)
> GetKeyState(VK_LCONTROL) чет я не прикололся

Да ладно.... "дурь" отменная... с F1 ваще улет)


 
Dmitry S   (2007-10-03 04:22) [27]


> 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;

:)



Страницы: 1 вся ветка

Текущий архив: 2007.10.28;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.022 c
2-1191398821
Кевларвестов Семен
2007-10-03 12:07
2007.10.28
Про TStringList.DelimitedText


2-1191311740
tmp
2007-10-02 11:55
2007.10.28
Неправильно удаляются записи из нетипизированного файла


15-1190888082
Cyrax
2007-09-27 14:14
2007.10.28
Авторское право на схему города: пара тонких вопросов...


1-1186404511
d_oleg
2007-08-06 16:48
2007.10.28
ObjAuto и Intel XEON


2-1191568762
em240
2007-10-05 11:19
2007.10.28
locate+настройка поиска