| 
| 
 | Вопрос # 5 311/ вопрос открыт / | 
 |  Здравствуйте, эксперты!
 Помогите, пожалуйста, добрым советом
 Есть сайт производителя  в котором страницы свойств товара отличаются номером артикула. Eсть локальная база с выбранными артикулами в ComboBox1 текст списка прописывается по готовым ссылкам на сайт.
 Как в Delphi автоматизировать процесс печати, чтобы  по имеющимся ссылкам из  ComboBox  по циклу  распечатывался?????
 Одним словом фото товара с описанием на сайте, а его артикулы в базе.  нужно раз в неделю готовить каталог :-(
 Приложение:Переключить в обычный режим varPostData2, Headers2: OLEvariant;  i:integer;begin for i:=0 to ComboBox1.Items.Count -1 do ComboBox1.Text:= ComboBox1.Text; WebBrowser1.Navigate(ComboBox1.Text); WebBrowser1.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DODEFAULT, PostData2, Headers2); end;
|  |   Вопрос задал: antonio640 (статус: Посетитель)Вопрос отправлен: 24 мая 2011, 00:38
 Состояние вопроса: открыт, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 10; последнее сообщение — 24 мая 2011, 16:46; участников в обсуждении: 3. 
|   | min@y™ (статус: Доктор наук), 24 мая 2011, 08:11 [#1]:Объясни-ка, для начала, что вот это такое: 
 for i:=0 to ComboBox1.Items.Count -1 do
ComboBox1.Text:= ComboBox1.Text; // <--- ??? 0_o Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | androschuk.a (статус: Посетитель), 24 мая 2011, 11:07 [#2]:это бессмысленное извращение |  
|   | antonio640 (статус: Посетитель), 24 мая 2011, 15:19 [#3]:var PostData2, Headers2: OLEvariant;
 i:integer;
 begin
 for i:=0 to ComboBox1.Items.Count -1 do
 WebBrowser1.Navigate(ComboBox1.Text);
 WebBrowser1.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DODEFAULT, PostData2, Headers2);
 |  
|   | min@y™ (статус: Доктор наук), 24 мая 2011, 15:33 [#4]:Нигде begin...end не пропустил? 
 for i:=0 to ComboBox1.Items.Count -1 do
WebBrowser1.Navigate(ComboBox1.Text); // <--- ??? 0_oМожет для начала изучишь матчасть программирования на паскале (операторные скобки), вместо того, чтобы пытаться писать серьёзные веб-приложения? Что по-твоему делает выложеный тобой код?
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | antonio640 (статус: Посетитель), 24 мая 2011, 15:44 [#5]:в данный момент, при таком коде, распечатывает текущую ссылку количеством строк в комбобоксе for i:=0 to ComboBox1.Items.Count -1 do
 //WebBrowser1.Navigate(ComboBox1.Text);
 WebBrowser1.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DODEFAULT, PostData2,
 Headers2);
 
 Как правильно создать цикл, чтоб печать была не по содердимому WebBrowser1.Navigate(ComboBox1.Text);
 а по содержанию каждой строчки ComboBox?
 |  
|   | antonio640 (статус: Посетитель), 24 мая 2011, 15:45 [#6]:procedure TForm1.Button7Click(Sender: TObject); 
 var
 PostData2, Headers2: OLEvariant;
 i:integer;
 begin
 for i:=0 to ComboBox1.Items.Count -1 do
 WebBrowser1.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DODEFAULT, PostData2,
 Headers2);
 
 end;
 |  
|   | min@y™ (статус: Доктор наук), 24 мая 2011, 15:55 [#7]:Ну, всё-таки, для начала узнай про операторные скобки. 
 for ... to ... do
  begin
    // <--- тут несколько действий
  end;Возможно, ты удивишься, узнав, для чего они нужны.Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | min@y™ (статус: Доктор наук), 24 мая 2011, 16:20 [#8]: Цитата (antonio640): Я так понял здесь без пива не обойтись ))  Да нахрена мне твоё пиво?! У меня своего пол-холодильника.
 Я тебе задавал наводящие вопросы, писал комментарии, указывал, где у тебя ошибка (// <---- ??? 0_o). И всё бесполезно. Даже ссылка на статью про операторные скобки не помогла.
 Может, всё-таки тебе начать с написания программы попроще?
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | antonio640 (статус: Посетитель), 24 мая 2011, 16:34 [#9]:я пытаюсь написать программу по необходимости я попросил помощи от экспертов.. -
 за внимание к вопросу спасибо всем
 Операторные скобки — скобки или команды, определяющие в языке программирования блок команд, воспринимаемый как единое целое, как одна команда. Примеры Pascal, Ада: «begin» и «end».
 Я написал так
 procedure TForm1.Button7Click(Sender: TObject);
 var  PostData2, Headers2: OLEvariant;
 i:integer;
 begin
 for i:=0 to ComboBox1.Items.Count -1 do
 begin
 WebBrowser1.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DODEFAULT, PostData2,
 Headers2);
 end;
 end;
 
 Где я ошибся? как написать так, как нужно?
 |  
|   | min@y™ (статус: Доктор наук), 24 мая 2011, 16:46 [#10]: Цитата (antonio640): Где я ошибся? как написать так, как нужно?  А Navigate() где? Как же твой internet explorer страницу-то закачает?
 Я никогда напрямую не работал с TWebBrowser (и это хорошо), поэтому предположу, что если закачка в нём оформлена в отдельном потоке (так и быть должно), то и такой цикл работать не будет. Сдаётся мне, что на печать каждую страницу надо отправлять не в цикле, а в обработчике какого-то события - OnNavigateComplete2 или OnDocumentComplete. И ставить на закачку следующую страницу надо тоже в этом обработчике после печати предыдущей.
 
 Если бы мне заказали такую программу, я бы сделал по-другому, без TWebBrowser. На печать отправлял бы только нужную инфу, отсеивая всякое говно типа счётчиков, ненужных картинок, ссылок, рекламы и т.п.
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |