Текущий архив: 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.5 MB
Время: 0.063 c