Форум программистов, компьютерный форум, киберфорум
Delphi
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
7-zip

Как задать oncklick и другие события в TWEbBrowser?

13.05.2009, 13:28. Показов 2564. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вопрос про компонент TWEbBrowser.. Значит есть на форме этот самый объект, в него подгружаются программно данные вида:

Key1: Value1
Key2: Value2
.....

нужно чтобы при наведении указателя мышки на каждое выражение Key сам указатель менял форму на ту же, на которую он меняется при наведении на ссылку. При клике по этому выражению Key необходимо чтобы это выражение без значения Value скопировалось в другой компонент на форме (например edit).. Как всю эту красоту можно сделать?.. даже подступиться не знаю как.. причём очень желательно чтобы в сам код не добавлялось ничего лишнего.. и ещё момент, все выражения key и value в коде выглядят вот так:

HTML5
1
<b><font CLASS=KEY color = #{разный}>Выражение Key</font>: </b>Выражение Value2


Может это как то поможет вылавливать их..

Насколько знаю всё это делается через MSHTML, при клике можно определить активный элемент, и дальше получать его свойства..

вот исходник в виде примера, как выглядят данные..

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
unit Unit6;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, OleCtrls, SHDocVw, ActiveX, MSHTML;
 
type
  TForm6 = class(TForm)
    WebBrowser1: TWebBrowser;
    Edit1: TEdit;
    Button1: TButton;
    Edit2: TEdit;
    Edit3: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form6: TForm6;
  v: Variant;
  HTMLDocument: IHTMLDocument2;
 
implementation
 
{$R *.dfm}
 
procedure TForm6.Button1Click(Sender: TObject);
begin
  if WebBrowser1.Document = nil then
  begin
    WebBrowser1.Navigate('about:blank');
    HTMLDocument:=WebBrowser1.Document as IHTMLDocument2;
    v:=VarArrayCreate([0, 0], varVariant);
    v[0]:='<STYLE> .KEY {font-size: 16px; font-family: "Courier"; font-weight: bold; background-color: #EEEEEE;}</STYLE>';
    HTMLDocument.Writeln(PSafeArray(TVarData(v).VArray));
  end;
  v[0]:='<b><font CLASS=KEY color = clRed>'+Edit1.Text+'</font>: </b>'+Edit2.Text+'<br>';
  HTMLDocument.Writeln(PSafeArray(TVarData(v).VArray));
end;
 
end.
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.05.2009, 13:28
Ответы с готовыми решениями:

Как задать поиск по диапазону ссылаясь на другие ячейки
Всем доброго дня. Подскажите как можно сделать следующий поиск, например : в ячейки А1 лежит номер столбца в ячейки А2 номер строки, в...

Как задать события для элементов списка listBox
Есть listBox, который заполняется программно: string files =Directory.GetFiles(@&quot;.&quot;, &quot;*.xml&quot;); ...

Как динамически задать обработчик события OnClick для кнопки ?
На странице есть кнопка. Я на нее нажимаю - создаются еще 10 кнопок с именами в виде порядкового номера. Как каждой кнопке назначить...

1
104 / 104 / 74
Регистрация: 27.05.2009
Сообщений: 201
27.05.2009, 08:22
попробуйте покопать в сторону WebBrowser1BeforeNavigate2

например чтобы из web страницы передать в программу

нужно

написать

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
procedure TForm1.WebBrowser1BeforeNavigate2(Sender: TObject;
  const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
  Headers: OleVariant; var Cancel: WordBool);
 var
  s: string;
begin
   if Pos( '#', URL ) > 0 then
      s := Copy( URL, Pos( '#', URL )+1, 10 )
      ;
   if AnsiUpperCase( s ) = 'ID' then
      begin
.............код
end;
end;
ссылка должна быть вида
HTML5
1
<a href="#ID">ссылка</a>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.05.2009, 08:22
Помогаю со студенческими работами здесь

Popmenu oncklick функция
Как правильно указать функцию при клике? У меня есть функция которая строит меню и экспортируется в lib при клике по пункту меню...

Задать метод события для множества объектов одного класса
Здравствуйте! Вынужден обратиться к опытным людям за советом. Имеется форма, на которой есть 60 label'ов. Необходимо, чтобы при событии...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных выбран регистр накопления, в. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru