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

Вниз

Как отловить нажатие Enter на EDIT   Найти похожие ветки 

 
bug008   (2003-03-12 20:36) [0]

Здравствуйте. Помогите плз в такой ситуации.
Есть однострочный edit. Необходимо отловит нажатие клавиши Enter по этому editу.

Спасибо.


 
ferrik ©   (2003-03-12 20:49) [1]

Если я правильно понял надо обрабатывать OnKeyDown и смотреть когда key=13.
Вероятно, я не понял вопрос и жестоко ошибаюсь....


 
ferrik ©   (2003-03-12 20:50) [2]

Удалено модератором
Примечание: Offtopic


 
Songoku ©   (2003-03-13 01:04) [3]

var
dEdit: Pointer;
implementation



function EditProc(hWnd,Msg,wParam,lParam:Longint):Longint; stdcall;
begin
Result:=CallWindowProc(dEdit,hWnd,Msg,wParam,lParam);

case Msg of
WM_KEYUP: if wParam=13 then
begin
// ---++++ТВОЙ КОД++++---
halt;
end;
end;

end;

procedure Crae
var
hedit:hwnd;
begin
hEdit:=CreateWindowEx(WS_EX_CLIENTEDGE,"Edit",nil,ES_MULTILINE or ES_LEFT or WS_CHILD or WS_VISIBLE or ES_AUTOHSCROLL or ES_AUTOVSCROLL ,222,25,153,20,Handle,109,0,nil);
dEdit:=Pointer(GetWindowLong(hEdit,GWL_WNDPROC));
SetWindowLong(hEdit,GWL_WNDPROC,Longint(@EditProc));
end;


 
Songoku ©   (2003-03-13 01:06) [4]

Помойму должно работать...
Если что пиши , всегда рад помочь


 
bug008   (2003-03-13 07:19) [5]

editу меня в ресурсе, но это не важно.
Я просто не хотел менять процедуру окна Editа и хуки не хотелось ставить... Хотел как-нибудь чере WM_COMMAND. Но похоже что нельзя.


 
Songoku ©   (2003-03-14 16:19) [6]

bug008
паренб всё можно ... пришли мне иходник и я тебе даделаю!!!
или просто
dEdit:=Pointer(GetWindowLong(GetDlgItem({Hwnd},{101}),GWL_WNDPROC));
SetWindowLong(GetDlgItem({Hwnd},{101}),GWL_WNDPROC,Longint(@EditProc));


 
Vitek   (2003-03-15 00:37) [7]

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
...чё хотел :)...
end;
end;



 
VD601   (2003-03-15 21:08) [8]

Можно поизваращеннее:
на ФормКейПресс (не забудь keypreview в true поставить):

begin
if (key = #13) and (ActiveControl = Edit1) then
bla-bla-bla
end;


 
Songoku ©   (2003-03-15 22:33) [9]

VD601 & Vitek
ВЫ что не понимаете !?!?!
Он это использует в Console а не в VCL ...



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

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

Наверх




Память: 0.48 MB
Время: 0.016 c
4-47047
Константин Артемьев
2003-03-13 17:40
2003.05.15
Как перехватить перезапись файла?


7-47020
Андрей_13
2003-03-20 16:11
2003.05.15
Окно


1-46725
qqqqq0001
2003-05-04 20:30
2003.05.15
Tfinddialog


3-46666
Lony
2003-04-19 22:55
2003.05.15
Почему нельзя воспользоваться этим кодом?


1-46714
чютатель
2003-05-04 16:28
2003.05.15
Как прочитать константу из dll ?