Delphi [2] |
Assembler [5] |
Курсовые проекты [4] |
Разное [1] |
Pascal [16] |
Невероятно, но факт [1] |
Заказать курсовую [1] |
SEO [1] |
С/C++ [10] |
Дипломные работы [1] |
Бизнес-цитатник [2] |
Главная » Статьи » Delphi |
Вступление На дворе 2011 год, самый разгар интернет технологий, web-приложения вытесняют прикладные программы. Единственная возможность ПП оставаться "на плаву", организовать работу с всемирной сетью. Как он работает?! После запуска программы, пользователь выбирает категорию и активизирует кнопку "Начать". После на форму грузиться вопрос и аватар. При желании можно ответить на вопрос, используя при этом браузер. Для написания парсера на понадобятся: - 2 TCombobox-а; всё остальное по вашему вкусу и усмотрению. Предварительная настройка компонентов Timer: Организация категорий в приложении 1. Событие OnChange, возникающее после выбора в списке ComboBox1: Код: procedure TForm1.ComboBox1Change(Sender: TObject); begin //---------выбор категории------------ if ComboBox1.ItemIndex=0 then begin if ComboBox2.Visible=true then ComboBox2.Visible:=false; razd:='http://otvet.mail.ru/auto/'; end; if ComboBox1.ItemIndex=1 then begin if ComboBox2.Visible=true then ComboBox2.Visible:=false; razd:='http://otvet.mail.ru/business/'; end; if ComboBox1.ItemIndex=2 then begin if ComboBox2.Visible=true then ComboBox2.Visible:=false; razd:='http://otvet.mail.ru/countries/'; end; if ComboBox1.ItemIndex=3 then begin if ComboBox2.Visible=true then ComboBox2.Visible:=false; razd:='http://otvet.mail.ru/magic/'; end; if ComboBox1.ItemIndex=4 then begin if ComboBox2.Visible=true then ComboBox2.Visible:=false; razd:='http://otvet.mail.ru/relax/'; end; if ComboBox1.ItemIndex=5 then begin if ComboBox2.Visible=true then ComboBox2.Visible:=false; razd:='http://otvet.mail.ru/food/'; end; if ComboBox1.ItemIndex=6 then begin if ComboBox2.Visible=true then ComboBox2.Visible:=false; razd:='http://otvet.mail.ru/animals_plants/'; end; if ComboBox1.ItemIndex=7 then begin if ComboBox2.Visible=true then ComboBox2.Visible:=false; razd:='http://otvet.mail.ru/love/'; end; if ComboBox1.ItemIndex=8 then begin if ComboBox2.Visible=true then ComboBox2.Visible:=false; razd:='http://otvet.mail.ru/culture/'; end; if ComboBox1.ItemIndex=9 then begin ComboBox2.Visible:=true; if ComboBox2.ItemIndex=-1 then razd:='http://otvet.mail.ru/it/'; end;
Код: procedure TForm1.ComboBox2Change(Sender: TObject); begin if ComboBox2.ItemIndex=0 then begin razd:='http://otvet.mail.ru/webdesign/'; end; if ComboBox2.ItemIndex=1 then begin razd:='http://otvet.mail.ru/hardware/'; end; if ComboBox2.ItemIndex=2 then begin razd:='http://otvet.mail.ru/internet/'; end; if ComboBox2.ItemIndex=3 then begin razd:='http://otvet.mail.ru/pc_games/'; end; if ComboBox2.ItemIndex=4 then begin razd:='http://otvet.mail.ru/programming/'; end; if ComboBox2.ItemIndex=5 then begin razd:='http://otvet.mail.ru/software/'; end; if ComboBox2.ItemIndex=6 then begin razd:='http://otvet.mail.ru/pc_other/'; end; Парсинг вопросов 1. Функция Pars Код: function Pars(T_, ForS, _T: string): string; var a, b: integer; begin Result := ''; if (T_ = '') or (ForS = '') or (_T = '') then Exit; a := Pos(T_, ForS); if a = 0 then Exit else a := a + Length(T_); ForS := Copy(ForS, a, Length(ForS) - a + 1); b := Pos(_T, ForS); if b > 0 then Result := Copy(ForS, 1, b - 1); end;
Прогресбар реализован для визуализации выполняемого процесса. Код: procedure TForm1.Timer1Timer(Sender: TObject); var sc,p, q, ur:string; captcha:TStream; jpg:TJPEGImage; begin ProgressBar1.Max:=9; Label1.Height:=90; Label1.Width:=400; jpg:=TJPEGImage.Create; p:=Form1.idhttp1.get(razd); sc:=Pars('class="subj" id="qheader:',p,'">'); if sc<>Label2.Caption then begin ProgressBar1.Position:=ProgressBar1.Position+1; Label2.Caption:=sc; ProgressBar1.Position:=ProgressBar1.Position+1; q:=Pars('<index>',p,'</index>'); ProgressBar1.Position:=ProgressBar1.Position+1; if q<>Label1.Caption then begin sc:=Pars('class="subj" id="qheader:',p,'">'); Label2.Caption:=sc; end; ProgressBar1.Position:=ProgressBar1.Position+1; Label1.Caption:=q; ProgressBar1.Position:=ProgressBar1.Position+1; ur:=Pars('<a href="/mail/',p,'/">'); ProgressBar1.Position:=ProgressBar1.Position+1; captcha:=TStringStream.Create(IdHTTP1.Get('http://avt.foto.mail.ru/mail/'+ur+'/_avatarsmall.jpg')); ProgressBar1.Position:=ProgressBar1.Position+1; jpg.LoadFromStream(captcha); ProgressBar1.Position:=ProgressBar1.Position+1; Image1.Picture.Assign(jpg); ProgressBar1.Position:=ProgressBar1.Position+1; ProgressBar1.Position:=0; end; end;
Код: procedure TForm1.BitBtn1Click(Sender: TObject); begin if ComboBox1.ItemIndex=-1 then ShowMessage('Выберите категорию'); Timer1.Enabled:=true; end; 4. Событие OnClick возникаючее при активизации кнопки "Стоп": Код: procedure TForm1.BitBtn2Click(Sender: TObject); begin Timer1.Enabled:=false; end; 5. Событие OnClick возникаючее при активизации кнопки "Ответить": Код: procedure TForm1.BitBtn3Click(Sender: TObject); begin ShellExecute(handle, 'open', PChar('http://otvet.mail.ru/question/'+label2.Caption+'/?begin_reply=1#reply'), nil, nil, SW_SHOW); end; Всё. Программой пользоваться несложно, если есть какие то вопросы - пишите. Если что то неполучиться вот исходник программы. | |
Просмотров: 2586 | Комментарии: 2
| Теги: |
Всего комментариев: 2 | |
| |