|
#1
|
|||
|
|||
ошибка
Доброе утро!
Помогите с ошибкой. Есть код: Код:
procedure TForm2.wb1BeforeNavigate2(Sender: TObject; const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData, Headers: OleVariant; var Cancel: WordBool); var f, i: integer; res_post: string; begin for f := 0 to wb1.OleObject.Document.forms.Length - 1 do begin for i := 0 to wb1.OleObject.Document.forms.Item(f).elements.Length - 1 do if wb1.OleObject.Document.forms.Item(f).elements.item(i).name = 'vk_page_userid' then res_post:=wb1.OleObject.Document.forms.Item(f).elements.item(i).value; edt1.Text:=res_post; stbsht5.PageControl.ActivePageIndex:=0; Get_MyPageInfo(edt1.Text); end; end; Процедура Код:
procedure TForm2.wb1BeforeNavigate2(Sender: TObject; const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData, Headers: OleVariant; var Cancel: WordBool); Код HTML:
Выходит 2 проблемы: 1) Ошибка "Access violation" когда нажимаю на кнопку, в которой html код загружаеться в wb1. 2) У меня в коде много кода Код HTML:
|
#2
|
||||
|
||||
Цитата:
|
#3
|
|||
|
|||
вообще после ошибки показывает на ету строку:
Код:
for f := 0 to wb1.OleObject.Document.forms.Length - 1 do и вот еще: Код:
while (str_mas<=str_mascount_get-1) do begin if (str_mas<=str_mascount_get-1) then begin html_fs:=htmls(html_fs)+'<table cellspacing="0">'; html_fs:=htmls(html_fs)+'<tr>'; html_fs:=htmls(html_fs)+'<td width="10%" class="td_prd" style="border-top:0px;"><img src="'+vk_avatar[str_mas]+'"></img></td>'; html_fs:=htmls(html_fs)+'<td width="30%" class="td_prd" style="border-left:0px;border-top:0px;">'+vk_firstname[str_mas]+' '+vk_lastname[str_mas]+'</td>'; html_fs:=htmls(html_fs)+'<td width="7%" class="td_prd" style="border-left:0px;border-top:0px;">'+vk_online_text+'</td>'; html_fs:=htmls(html_fs)+'<td class="td_prd" style="border-left:0px;border-top:0px;"><form action="" method="POST"><input type="hidden" name="vk_page_userid" value="'+vk_userid[str_mas]+'"><input type="submit" name="vk_page_userid_submit" value="Submit"></form></td>'; html_fs:=htmls(html_fs)+'</tr>'; html_fs:=htmls(html_fs)+'</table>'; str_mas:=str_mas+1; end; end; Код HTML:
Код HTML:
и вот если изменить код: Код:
procedure TForm2.wb1BeforeNavigate2(Sender: TObject; const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData, Headers: OleVariant; var Cancel: WordBool); var f, i: integer; res_post: string; begin for f := 0 to wb1.OleObject.Document.forms.Length - 1 do begin for i := 0 to wb1.OleObject.Document.forms.Item(f).elements.Length - 1 do if wb1.OleObject.Document.forms.Item(f).elements.item(i).name = 'vk_page_userid' then res_post:=wb1.OleObject.Document.forms.Item(f).elements.item(i).value; edt1.Text:=res_post; stbsht5.PageControl.ActivePageIndex:=0; Get_MyPageInfo(edt1.Text); end; end; Код:
procedure TForm2.WebBrowser1NavigateComplete2(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant); var f, i: integer; res_post: string; begin for f := 0 to wb1.OleObject.Document.forms.Length - 1 do begin for i := 0 to wb1.OleObject.Document.forms.Item(f).elements.Length - 1 do if wb1.OleObject.Document.forms.Item(f).elements.item(i).name = 'vk_page_userid' then res_post:=wb1.OleObject.Document.forms.Item(f).elements.item(i).value; edt1.Text:=res_post; stbsht5.PageControl.ActivePageIndex:=0; Get_MyPageInfo(edt1.Text); end; end; все решил проблему так: Код:
procedure TForm2.WebBrowser1BeforeNavigate2(Sender: TObject; const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData, Headers: OleVariant; var Cancel: WordBool); var post_zapros:string; post_hran: TStringList; post_userid: string; begin post_hran:=TStringList.Create; try if Length(PostData) > 10 then begin post_zapros:=Variant2Str(PostData); post_hran.Text:=URLDecode(post_zapros); post_userid:=Pars('vk_page_userid=', post_hran.Text, '&'); stbsht5.PageControl.ActivePageIndex:=0; Get_MyPageInfo(post_userid); end; finally post_hran.Free; end; end; Последний раз редактировалось M.A.D.M.A.N., 04.04.2014 в 21:56. |