![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Дублирование Showmessage
Демерго © (2010-12-06 11:04:00)Всем привет, подскажите почему происходит многоразовое срабатывание Showmessage в следующем коде. Причем количество срабатываний не фиксированное. От трех до пяти.
Вот код:
По окончанию загрузки страници ищем в ней текст "Гром"
procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
begin
if s=1 then SearchAndHighlightText4('Гром');
end;
Вот алгоритм поиска и если текст найдем запускаем таймер 4.
procedure TForm1.SearchAndHighlightText4(aText4: string);
var
i4: Integer;
begin
for i4 := 0 to WebBrowser1.OleObject.Document.All.Length - 1 do
begin
if Pos(aText4, WebBrowser1.OleObject.Document.All.Item(i4).InnerText) <> 0 then
begin
timer4.Enabled:=true;
end;
end;
end;
Выдаем сообщени "бинго" и останавливаем таймер.
procedure TForm1.Timer4Timer(Sender: TObject);
begin
showmessage('Бинго');
timer4.Enabled:=false;
end;
После выполнения этого кода табличка "Бинго" выскакивает много раз. Подскажите почему.
Dennis I. Komarov (2010-12-06 14:29:00) [1]
> Н-да...
И ты еще удивляешся?
Смотрел я за веткой: кто же не выдержит...
Ega23 (2010-12-06 13:19:00) [2]
> Гениально! все заработало как надо :)
[3], [7], [14], [15]...
Н-да...
Демерго (2010-12-06 13:16:00) [3]
> icWasya ©
Гениально! все заработало как надо :) Жалко здесь плюсики нельзя ставить.
Спасибо ОГРОМНОЕ :)
Медвежонок Пятачок (2010-12-06 13:14:00) [4]Переставить конечно надо, но судя по [20] и [22] этого мало.
icWasya (2010-12-06 13:11:00) [5]всего навсего надо было переставить вот эти строки
showmessage('Бинго');
timer4.Enabled:=false;
Медвежонок Пятачок (2010-12-06 12:55:00) [6]for i4 := 0 to WebBrowser1.OleObject.Document.All.Length - 1 do
begin
ShowMessage(WebBrowser1.OleObject.Document.All.Item(i4).InnerText);
......
Демерго (2010-12-06 12:50:00) [7]Ладно, забей. Само срастется :)
Медвежонок Пятачок (2010-12-06 12:48:00) [8]Непонятно почему такие большие и почему каждый раз разные :)
Все по новой?
Сказка про белого бычка?
Демерго (2010-12-06 12:46:00) [9]
> Медвежонок Пятачок ©
Спасибо за код :) Цифры получились забавные 28... 56... :) Непонятно почему такие большие и почему каждый раз разные :)
Ega23 (2010-12-06 12:29:00) [10]Удалено модератором
Медвежонок Пятачок (2010-12-06 12:29:00) [11]Если отладчик не осилил, то вот это-то поюзай
...
for i4 := 0 to WebBrowser1.OleObject.Document.All.Length - 1 do
begin
if Pos(aText4, WebBrowser1.OleObject.Document.All.Item(i4).InnerText) <> 0 then
begin
Tag := succ(Tag);
Caption := Format('Вот сколько раз %d',[Tag]);
timer4.Enabled:=true;
end;
end;
end;
Демерго (2010-12-06 12:25:00) [12]Есть скайп? Я за минуту наверно больше словами обьясню чем тут этими "ребусами".
Медвежонок Пятачок (2010-12-06 12:21:00) [13]а чем аналогия не понравилась?
Водила без понятия что кто-то там в салоне закрыл глаза.
Таймер тоже без понятия что кто-то там нажал или не нажал какую-то кнопку, про которую он ничего не знает.
Тайме не знает, что ему "типа нельзя тикать"
Водила не знает, что ему "типа нельзя видеть дорогу"
Демерго (2010-12-06 12:15:00) [14]
> Медвежонок Пятачок ©
сам то понял смысл приведенной аналогии?
ЗЫ: Я думаю ты мне уже достаточно помог по данному вопросу. Спасибо :)
Демерго (2010-12-06 12:13:00) [15]
> stas ©
щас буду мучать :) проверь мыло указанное у тебя в профиле
Медвежонок Пятачок (2010-12-06 12:08:00) [16]То есть пока я не нажму "ок" в мессадже, таймер продолжает тикать?
То есть когда я еду в автобусе и закрываю глаза, то водила продолжает видеть дорогу?!!!
Чума!!!
stas (2010-12-06 12:01:00) [17]Демерго (06.12.10 11:15) [8]
Отладчик, точки останова для чего? )
Jeer (2010-12-06 11:49:00) [18]Представляю себе состояние вещей, посуды, etc..
Демерго (2010-12-06 11:40:00) [19]Наверное чтобы делать за меня всю грязную работу. Ну там стирать, мыть посуду и т.д. :)
Медвежонок Пятачок (2010-12-06 11:36:00) [20]а зачем тебе программа, если ты круче процессора?