Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

нажатие [D7]


Страницы:   1 2

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, конечно же :)


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо