вообще после ошибки показывает на ету строку:
Код:
for f := 0 to wb1.OleObject.Document.forms.Length - 1 do
зделал так, как вы написали но че дальше делать незнаю, я assembler толком незнаю
и вот еще:
Код:
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;
ето выводит информацию о ВК пользователях в webbrowser1
Код HTML:
<input type="hidden" name="vk_page_userid" value="'+vk_userid[str_mas]+'">
- вот передаеться id, но когда наживаю на кнопку выбраного пользователя
Код HTML:
<input type="submit" name="vk_page_userid_submit" value="Submit">
webbrowser выводит с начала до конца все id, тоисть vk_page_userid, а не тот, который я выбрал.
и вот если изменить код:
Код:
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;
то все запускается без "Access violation", но значения "vk_page_userid" получаю все без нажатия кнопки
все решил проблему так:
Код:
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;