23.04.2019, 12:01 [+3 UTC]
в нашей команде: 3 562 чел. | участники онлайн: 10 (рекорд: 21)

:: РЕГИСТРАЦИЯ

задать вопрос

все разделы

правила

новости

участники

доска почёта

форум

блоги

поиск

статистика

наш журнал

наши встречи

наша галерея

отзывы о нас

поддержка

руководство

Версия системы:
7.74 (12.04.2019)
JS-v.1.33 | CSS-v.3.35

Общие новости:
09.03.2019, 10:08

Форум:
22.04.2019, 13:50

Последний вопрос:
23.04.2019, 10:18
Всего: 149356

Последний ответ:
23.04.2019, 08:52
Всего: 258235

Последняя рассылка:
22.04.2019, 21:15

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
14.06.2010, 05:48 »
Киселев Сергей
Спасибо за исчерпывающий ответ. [вопрос № 179076, ответ № 262090]
22.12.2010, 15:41 »
FOXhunter
Спасибо за проделанную работу! Хотя я смирился с тем что в Google Chrome границы так и не отображаются, решил что пусть будет так как есть, ну потому что не реально исправлять код страниц, созданных с помощью Excel. Просто думал что я какой-то галочки не поставил что бы границы отображались, а они и так отображаются, но только не в Chrome'е [вопрос № 181411, ответ № 265003]
13.12.2010, 14:38 »
Гурьева Ирина
Спасибо за ответ. Ясно, что дать более точный без документов вы не могли. Документы выложила на форум. [вопрос № 181168, ответ № 264610]

РАЗДЕЛ • Pascal / Delphi / Lazarus

Создание программ на языках Pascal, Delphi и Lazarus.

[администратор рассылки: Зенченко Константин Николаевич (Старший модератор)]

Лучшие эксперты в этом разделе

Зенченко Константин Николаевич
Статус: Старший модератор
Рейтинг: 394
puporev
Статус: Профессионал
Рейтинг: 157
Асмик Гаряка
Статус: Советник
Рейтинг: 0

Перейти к консультации №:
 

Консультация онлайн # 140907
Раздел: • Pascal / Delphi / Lazarus
Автор вопроса: Oneboyfriend
Отправлена: 28.07.2008, 17:26
Поступило ответов: 1

Помогите решить задачу.
Задача в следующем:
есть веб форма с поля для заполнения и есть select такого рода:
<SELECT class=input_submit name="home"> <OPTION value=0
selected>Выбор страны</OPTION> <OPTION value=Украина(+3)>Украина (+3)</OPTION>
<OPTION value=Россия(+7)>Россия (+7)</OPTION>
<OPTION value=США(+039)>США(+039)</OPTION>
</SELECT>
Вопрос......
Как мне в combobox добавить все (OPTION value)
а при выборе в комбобоксе определенной страны, на сайте менялось тоже.

Состояние: Консультация закрыта

Ответ # 227100 от Denisss


Здравствуйте, Oneboyfriend!

Пример находится в приложении. oper - объект класса TComboBox.

Если в тексте страницы имеется не один элемент с именем (name) 'home', то придется усложнить код:
1. С помощью iDoc.all.tags('SELECT') получаете коллекцию (iColl: IHTMLElementCollection) элементов с тэгом SELECT;
2. Перебираете элементы коллекции (IHTMLSelectElement), пока не найдете элемент с именем 'home' (он и будет сохранен в переменной iSel).

Удачи!

Приложение:


Консультировал: Denisss
Дата отправки: 31.07.2008, 19:57

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Мини-форум консультации № 140907
неизвестный

# 1

= общий = | 28.07.2008, 17:45

P.s. использую twebbrowser

Вадим Исаев ака sir Henry
Мастер-Эксперт

ID: 425

# 2

= общий = | 28.07.2008, 18:08 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Oneboyfriend
Сначала расскажите, как Ваша программа связана с сайтом, на котором должно "меняться тоже"...
И под combobox Вы имеете в виду компонент Дельфи TComboBox?

=====
Я только в одном глубоко убеждён - не надо иметь убеждений! :)

неизвестный

# 3

= общий = | 28.07.2008, 19:10

как связано это не важно, вы мне дайте ответ если знаете, а по поводу компонента sir Henry будте внимательны (Рассылка: / КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi)

=====
Я только в одном глубоко убеждён - не надо иметь убеждений! :)

Denisss

# 4

= общий = | 28.07.2008, 19:40

Правильно ли я понимаю?:
Вы хотите создать форму (TForm), на которой будет размещен TComboBox. Далее Вы скачиваете web-страницу (заходите на сайт), обрабатываете ее и заполняете список значений установленного на форму TComboBox. После того, как пользователь нажмет на кнопку ОК, выбранное значение отправляется на сайт (методом Get или Post).

=====
Я только в одном глубоко убеждён - не надо иметь убеждений! :)

неизвестный

# 5

= общий = | 28.07.2008, 20:29

нет, через twebbrowser я открываю некую страницу, там есть поле (selelct) c выбором страны, так вот эти страны мне нужно программно поместить в combobox
вот как я делал, но у меня все береться
procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
var iDoc:IHtmlDocument2;
i:integer;
iDisp: IDispatch;
iColl:IHTMLElementCollection;
iOpt:IHTMLOptionElement;

begin
WebBrowser1.ControlInterface.Document.QueryInterface(IHtmlDocument2,iDoc);
IDisp:=iDoc.all.tags('OPTION'); - если пишу (option value) то пусто, как мне эти value взять
if assigned(IDisp) then begin
IDisp.QueryInterface(IHTMLElementCollection,iColl);
if assigned(iColl) then begin
for i:=1 to iColl.Get_length do begin
iDisp:=iColl.item(pred(i),1);
iDisp.QueryInterface(IHTMLOptionElement,iOpt);
if Assigned(iOPT) then
begin
oper.Items.Add(iOpt.value);
end;
end;
end;
end;
end;


тоесть, в oper.itemindex должны быть города, а у меня получаеться, сначало 2 нуля и все города дублируются почемуто( тоесть, Украина, Украина,Россия,Росиия), помоги пожалуйста.
Посмотрите вопрос (весь select) , первое value =0
Вообщем мне надо (option value) поместить в combobox.item.add

=====
Я только в одном глубоко убеждён - не надо иметь убеждений! :)

Вадим Исаев ака sir Henry
Мастер-Эксперт

ID: 425

# 6

= общий = | 29.07.2008, 05:48 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Oneboyfriend
Чтобы знать, что Вам ответить, сначала нужно понять вопрос, согласитесь? smile
К сожалению Ваша формулировка непонятна и свидетельство тому - не только я не понимаю, но и другие эксперты.
Так что Ваше замечание о невнимательности некорректно.

=====
Я только в одном глубоко убеждён - не надо иметь убеждений! :)

неизвестный

# 7

= общий = | 29.07.2008, 13:12

и что не понятного в вопросе? это просто говоря называеться не знаем и всё, самый первый вопрос поставлен корретно, и все понятно там что и для чего

=====
Я только в одном глубоко убеждён - не надо иметь убеждений! :)

Denisss

# 8

= общий = | 29.07.2008, 20:15

Странно, но Ваш код у меня нормально работает. Поэтому могу предположить, что проблема в самом HTML файле (странице).
Попробуйте заменить код вот на такой:

procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
var
  iDoc: IHtmlDocument2;
  i, j: integer;
  iDisp: IDispatch;
  iColl: IHTMLElementCollection;
  iSel: IHTMLSelectElement;
  iOpt: IHTMLOptionElement;
  hr: HRESULT;

begin
  oper.clear;

  hr:= WebBrowser1.ControlInterface.Document.QueryInterface(IHtmlDocument2,
    iDoc);

  if Failed(hr) then
    Exit;

  iDisp:= iDoc.all.tags('SELECT');

  if not assigned(iDisp) then
    Exit;

  hr:= iDisp.QueryInterface(IHTMLElementCollection, iColl);

  if Failed(hr) then
    Exit;

  for i:= 1 to iColl.length do
  begin
    iDisp:= iColl.item(Pred(i), Pred(i));
    hr:= iDisp.QueryInterface(IHTMLSelectElement, iSel);

    if (not Failed(hr)) and (iSel.name = 'home') then
    begin
      for j:= 1 to iSel.length do
      begin
        iDisp:= iSel.item(Pred(j), Pred(j));
        hr:= iDisp.QueryInterface(IHTMLOptionElement, iOpt);

        if not Failed(hr) then
          oper.Items.Add(iOpt.value);
      end;

      Break;
    end;
  end;
end;

=====
Я только в одном глубоко убеждён - не надо иметь убеждений! :)

неизвестный

# 9

= общий = | 30.07.2008, 12:51

Спасибо Denisss но всеровно таже проблема все странны дублируются, а (oper.clear - не доступна операция).
Denisss посмотрите пожалуйста самы первый вопрос на форму select там первый (optionvalue =0) от тоже добавляется в combobox и тоже дублируется, а вместо 0 должно быть (Выбор страны)
Denisss может проблема в том, что идет два одинаковых имени( <OPTION value=Украина(+3)>Украина (+3)</OPTION>) поэтому и дублируется. Если смотреть как Html страницу то получаеться


Метка элемента Значение

Выбор страны 0
Украина Украина
Россия Россия
Получаеться мне надо (Метка элемента), а у меня в combobox и (метка) и (значение) заноситься.
Denisss пожалуйста разберитесь, потому что я пока в таких делах слаб, а очень нужно это сделать, это единственная проблема моя, с input, textarea,submit я разобрался.
Заранее благодарень за помощь и ответы

=====
Я только в одном глубоко убеждён - не надо иметь убеждений! :)

Denisss

# 10

= общий = | 30.07.2008, 18:57

© Цитата:
oper.clear - не доступна операция

Странно, вроде это стандартный метод класса TComboBox. Вместо нее можно использовать:
oper.Items.Clear;


Также рекомендую Вам внимательнее просмотреть обработчики событий используемого компонента TWebBrowser - возможно Вы где-то еще делаете обработку, что добавляет дубликаты в список.

=====
Я только в одном глубоко убеждён - не надо иметь убеждений! :)

неизвестный

# 11

= общий = | 30.07.2008, 23:30

Denisss спасибо большое, когда oper.item.clear то все нормально не дублируеться но (0) всеровно вместо Выбор города, да не важно это, спасибо.
Помоги организовать вот такую функцию:
oper.itemindex:=iOpt.value; - я так понял здесь нужно организовать не (value) а (selected)? но как я не знаю.
писал так iopt.selected:=oper.itemindex; - пишет Incompatible type String
тоесть то что мы сделали надо наоборот, чтобы при выборе в combobox выбиралось и на сайте в select

=====
Я только в одном глубоко убеждён - не надо иметь убеждений! :)

 

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.14709 сек.

© 2001-2019, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.74 от 12.04.2019
Версия JS: 1.33 | Версия CSS: 3.35