Модераторы: MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> IE: VK_HOME/VK_END -> прокрутить документ, red trouble 
:(
    Опции темы
B2_Russia
Дата 11.4.2006, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


В доску свой :)
**


Профиль
Группа: Участник
Сообщений: 344
Регистрация: 3.7.2003
Где: Тверь

Репутация: нет
Всего: 1



Код
Код

   s:='pagedown';
   if (s<>'') then
    if cDOCTYPE then
     Variant(WB.Document).documentElement.doScroll(s) else
     Variant(IHTMLDocument2(WB.Document).body).doScroll(s);


прокручивает документ вниз, мне нужно прокрутить на самый верх при нажатии кнопки VK_HOME

как сделать?
PM WWW ICQ   Вверх
B2_Russia
Дата 11.4.2006, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


В доску свой :)
**


Профиль
Группа: Участник
Сообщений: 344
Регистрация: 3.7.2003
Где: Тверь

Репутация: нет
Всего: 1



Все решилось примерно так
Код

  if Msg.wParam = VK_HOME then
  begin
  pos := 0;
  if not(Assigned(WB.Document)) then exit;
  i:=Variant(WB.Document).documentElement.scrollTop;
  if i=0 then Variant(WB.Document).documentElement.scrollTop:=1;
  if (Variant(WB.Document).documentElement.scrollTop=1)or(i>0) then
   begin
    //!DOCTYPE - O?!
    Variant(WB.Document).documentElement.scrollTop:=pos;
    //Application.ProcessMessages;
   end else
   begin
    //!DOCTYPE - ??!
    IHTMLDocument2(WB.Document).body.setAttribute('scrollTop',pos,0);
    //Application.ProcessMessages;
   end;
   mScroller.SetPosition(pos);
   InvalidateRect(Handle,nil,false);
  end;

  if Msg.wParam = VK_END then
  begin
  pos := 100000;
  if not(Assigned(WB.Document)) then exit;
  i:=Variant(WB.Document).documentElement.scrollTop;
  if i=0 then Variant(WB.Document).documentElement.scrollTop:=1;
  if (Variant(WB.Document).documentElement.scrollTop=1)or(i>0) then
   begin
    //!DOCTYPE - O?!
    Variant(WB.Document).documentElement.scrollTop:=pos;
    //Application.ProcessMessages;
   end else
   begin
    //!DOCTYPE - ??!
    IHTMLDocument2(WB.Document).body.setAttribute('scrollTop',pos,0);
    //Application.ProcessMessages;
   end;
   mScroller.SetPosition(pos);
   InvalidateRect(Handle,nil,false);
  end;


Но не отказался бы от решения в стиле приведенного примера в первом посте
PM WWW ICQ   Вверх
December
Дата 11.4.2006, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


Профиль
Группа: Участник
Сообщений: 4423
Регистрация: 14.8.2002
Где: Харьков

Репутация: 12
Всего: 57



Код

procedure ScrollWB(gWB:TWebBrowser;X,Y:integer);
var
  TheDoc:IHTMLDocument2;
  TheWin:IHTMLWindow2;
begin
try
TheDoc:=gWB.ControlInterface.Document as IHTMLDocument2;
if not Assigned(TheDoc) then exit;
TheWin:=TheDoc.parentWindow;
TheWin.scrollBy(X,Y);
except
showmessage('Error during ScrollWB.');
end;//except
end;

Можно ещё попробовать scrollIntoView для нулевого элемента рутовой коллекции all


--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: ActiveX/СОМ/CORBA"

Rrader
Girder

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Delphi
  • Вопросы по SQL и вопросы по базам данных, не связанные с Delphi, задавать здесь

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Rrader, Girder.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: ActiveX/СОМ/CORBA | Следующая тема »


 




[ Время генерации скрипта: 0.0450 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.