Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.08.2011, 20:06   #1
kettanaito
Веб-дизайнер
Форумчанин
 
Аватар для kettanaito
 
Регистрация: 11.08.2011
Сообщений: 305
По умолчанию Эмулирование нажатия клавиш в WebBrowser

Доброго времени суток.
Имеется WebBrowser, в котором загружена статическая страница. На странице отображен элемент <textarea>. При выделенном textarea и нажатии клавиши Enter текст в поле преобразовывается.

Задача выделить этот элемент и эмулировать нажатие Enter именно в нем.
Делал так:
Код:
SendMessage(impwb.handle, WM_KEYDOWN,VK_RETURN,0);
// где impwb - данный TWebBrowser
Это работает, но энтер нажимается непосредственно в браузере, а не в поле <textarea>. Есть идеи?
kettanaito вне форума Ответить с цитированием
Старый 29.08.2011, 21:18   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Да, есть. Ищи алгоритм поиска и выделения текста в TWebBrowser. Используй и нажимай Enter.

как вариант: http://forum.oszone.net/post-1683358.html

Помог - с тебя + =)
Человек_Борща вне форума Ответить с цитированием
Старый 29.08.2011, 21:24   #3
kettanaito
Веб-дизайнер
Форумчанин
 
Аватар для kettanaito
 
Регистрация: 11.08.2011
Сообщений: 305
По умолчанию

Человек_Борща, я, скорее всего, не правильно изложил мою проблему. Мне не нужно искать ничего внутри textarea. Моя задача программно выделить элемент и эмулировать в нем нажатие Ctrl+Enter.
kettanaito вне форума Ответить с цитированием
Старый 29.08.2011, 21:51   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Дайте пример html и покажите что нужно выделять. Тогда будет ясно.
Человек_Борща вне форума Ответить с цитированием
Старый 29.08.2011, 23:42   #5
kettanaito
Веб-дизайнер
Форумчанин
 
Аватар для kettanaito
 
Регистрация: 11.08.2011
Сообщений: 305
По умолчанию

Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html>
<head>
<title>HTML</title>
<script>
function setCaretPosition(ctrl, pos){	if(ctrl.setSelectionRange)	{		ctrl.focus();		ctrl.setSelectionRange(pos,pos);	}	else if (ctrl.createTextRange) {		var range = ctrl.createTextRange();		range.collapse(true);		range.moveEnd('character', pos);		range.moveStart('character', pos);		range.select();	}}
function process(){	var no = document.getElementById('no').value;	setCaretPosition(document.getElementById('imp'),no);}</script>
</head>

<body>
<script type="text/javascript" src="script.js"></script>

<textarea id="imp">div.header>a*5</textarea>
<input id="no" value="0" />
<a id="pos" href="#"  onclick="process();">Position</a>
</body>
</html>
Необходимо выделить textarea#imp и нажать в ней Ctrl+Enter.
kettanaito вне форума Ответить с цитированием
Старый 30.08.2011, 01:07   #6
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

т.е. вы ставите фокус в textarea и жмёте enter , так?
Я думаю вы сможете сами переделать этот код под себя: http://www.disketa.info/page.asp?pag...idd=1024&raz=3

Последний раз редактировалось Человек_Борща; 30.08.2011 в 01:18.
Человек_Борща вне форума Ответить с цитированием
Старый 30.08.2011, 12:15   #7
kettanaito
Веб-дизайнер
Форумчанин
 
Аватар для kettanaito
 
Регистрация: 11.08.2011
Сообщений: 305
По умолчанию

Человек_Борща, аналогией Click() я не нажму Ctrl+Enter. Третий раз повторяюсь. Фокус установить можно, через textarea.item(i).focus() все работает, с погрешностью, разве что, в том, что фокус идет в самое начало текста, а хотелось бы в конец.
kettanaito вне форума Ответить с цитированием
Старый 30.08.2011, 13:50   #8
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Разве нет возможности SetFocus? //Установка фокуса в любое место
Человек_Борща вне форума Ответить с цитированием
Старый 30.08.2011, 14:27   #9
kettanaito
Веб-дизайнер
Форумчанин
 
Аватар для kettanaito
 
Регистрация: 11.08.2011
Сообщений: 305
По умолчанию

Человек_Борща, может и есть, но не через данный Вами способ. Там идет выполнение команд основанных на javascript, в котором в качестве фокуса идет elem.focus();
kettanaito вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Эмуляция нажатия клавиш KamiMAN Общие вопросы Delphi 5 13.03.2011 06:24
имитация нажатия клавиш RAVAL(c) HTML и CSS 10 07.02.2011 12:29
Комбинация нажатия клавиш IraPr Microsoft Office Access 1 04.10.2010 11:31
нажатия клавиш на клавиатуре include Общие вопросы Delphi 4 24.06.2009 16:26
Перехват нажатия клавиш. Vi_russ Общие вопросы Delphi 1 02.12.2008 20:25