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

Вниз

Эмулятор нажатия Enter а   Найти похожие ветки 

 
Slonik   (2007-08-03 01:54) [0]

Доброго времени суток! Нужно в текстовом поле нажать на ентер, но не на клаве, а через программу... Пробывал SendMessage(ControlHandle, BM_CLICK, 0, 0), чет не получается... Напишите, пожалуйста, какие-нить другие варианты.

Заранее спасибо!


 
Elen ©   (2007-08-03 09:20) [1]

Попробуй Edit1.Perform(WM_CHAR,13,0); Только зачем все это? Если ты прописал обработчик OnKeyPress или Down или Up то проще вызывать соответствующую им процедуру, передавая туда клавишу #13.


 
Dib@zol ©   (2007-08-03 09:22) [2]

Эт оч просто:

Сначала надо унаследовать свою оконную процедуру от процедуры едит-а;
Потом подключиться к ней;
И творить что в голову взбредёт!

Вот пример:

var
 EWP : Pointer;

...

function EDP(hWnd: HWND; Msg: LongInt; wParam, lParam: Longint): longInt; stdcall;
begin
 if (Msg = WM_KEYUP)and(wParam = VK_RETURN) then begin
   MessageBox(hWnd, "Урряя!! Поймалося!!!", "", 0); // <- Вот оно!!!
 end else Result:=CallWindowProc(EWP, hWnd, Msg, wParam, lParam);
end;

...

longInt(EWP):=setWindowLong(Edit1.Handle, GWL_WNDPROC, longInt(@EDP));


 
JanMihail ©   (2007-08-03 11:18) [3]

PostMessage(VK_RETURN, WM_KEYDOWN, 1, 1);
PostMessage(VK_RETURN, WM_KEYUP, 1, 1);


 
JanMihail ©   (2007-08-03 11:19) [4]


> [3]

Извини ошибся. Вот так:
PostMessage(<хэндл>, WM_KEYDOWN, VK_RETURN, 1);
PostMessage(<хэндл>, WM_KEYUP, VK_RETURN, 1);


 
Leonid Troyanovsky ©   (2007-08-03 12:29) [5]


> JanMihail ©   (03.08.07 11:19) [4]

> Извини ошибся. Вот так:

Все равно, это лишь имитация (приблизительная).
Если уж эмулировать, то SendInput to foreground window.

--
Regards, LVT.


 
имя   (2007-08-03 15:16) [6]

Удалено модератором



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

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

Наверх




Память: 0.47 MB
Время: 0.026 c
15-1185891612
WASM
2007-07-31 18:20
2007.08.26
Формат dct


1-1181685116
ShowMessage(OpDlg.FileName)
2007-06-13 01:51
2007.08.26
TDialodи


2-1186091641
Slonik
2007-08-03 01:54
2007.08.26
Эмулятор нажатия Enter а


3-1178386569
Razor
2007-05-05 21:36
2007.08.26
Delphi + Mysql5


2-1186155030
Ануфрий
2007-08-03 19:30
2007.08.26
Как убрать сообщения об ошибках