EXIS
Отправлено: 06.12.2005, 18:29
Не зарегистрирован
Имеем html док
Test Script <script language=JavaScript> function ASTSend(data){ASTInterface.value=data;window.status="Send";window.status="";}
function startcode()
{
scroll();
}
var i = 0;
function scroll()
{
ASTSend(i);
i++;
setTimeout("scroll()", 10);
}
Кидаем док в папку с программой
кидаем на форму
TCppWebBrowser (Browser1)
Label1
Label2 (ASTStatus)
OnASTGetData = OnChangePropertys(Browser1)
ЧекБокс (RB1)
и две кнопки Button1 и Button2
// Автор Павлюшин Е.
#include
void GetFromAST()
{
WideString UserID="portal";
IHTMLDocument2 *pHTMLDocument = NULL;
if ( SUCCEEDED ( Form1->Browser1 -> Document -> QueryInterface ( IID_IHTMLDocument2, ( LPVOID* )&pHTMLDocument ) ) )
{
if ( pHTMLDocument != NULL )
{
IHTMLElementCollection *pAll = NULL;
if ( SUCCEEDED ( pHTMLDocument -> get_all ( &pAll ) ) && pAll )
{
TVariant vName1 = "ASTInterface";
TVariant vIndex = 0;
// put into input element
// UserID
IDispatch *pDisp1 = NULL;
//Text1
if ( SUCCEEDED ( pAll -> item ( vName1, vIndex, &pDisp1 ) ) && pDisp1 )
{
IHTMLInputElement *pInput = NULL;
if ( SUCCEEDED ( pDisp1 -> QueryInterface ( IID_IHTMLInputElement, ( LPVOID* )&pInput ) ) && pInput )
{
WideString tt;
pInput->get_value(&tt);
Form1->Label1->Caption=tt;
//pInput->put_value(WideString("asdasas"));
pInput -> Release ();
}
pDisp1 -> Release ();
}
}
}
pHTMLDocument -> Release ();
}
}
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
// Пускаем код с самого начала!
TVariant path=GetCurrentDir()+"//1.htm"; //Переменная строки броузера
Browser1->Navigate2(path,0,0,0,0);//Пускаем броузер
}
//---------------------------------------------------------------------------
void __fastcall TForm1::OnASTGetData(TObject *Sender, BSTR URL)
{
if (URL[0]=='S' && URL[1]=='e' && URL[2]=='n' && URL[3]=='d')
{
GetFromAST();
RB1->Left=StrToInt(Label1->Caption);
}
ASTStatus->Caption=URL;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
GetFromAST();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if (Browser1->Width==0)
{
Browser1->Width=600;
Browser1->Height=300;
}
else
{
Browser1->Width=0;
Browser1->Height=0;
}
}
//---------------------------------------------------------------------------
Может кого заинтерисует во время работы HTML Javascript управляет позицией чекбокса... чекбокс двигается в лево...
Если код не работает спрашивайте пока я сдесь....
EXIS
Отправлено: 07.12.2005, 21:09
Не зарегистрирован
Вот полный код проги
два Labela
один CheckBox
Две Button
один TCppWebBrowser (Browser1)
CODE
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include <mshtml.h>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "SHDocVw_OCX"
#pragma resource "*.dfm"
TForm1 *Form1;
void GetFromAST()
{
WideString UserID="portal";
IHTMLDocument2 *pHTMLDocument = NULL;
if ( SUCCEEDED ( Form1->Browser1 -> Document -> QueryInterface ( IID_IHTMLDocument2, ( LPVOID* )&pHTMLDocument ) ) )
{
if ( pHTMLDocument != NULL )
{
IHTMLElementCollection *pAll = NULL;
if ( SUCCEEDED ( pHTMLDocument -> get_all ( &pAll ) ) && pAll )
{
TVariant vName1 = "ASTInterface";
TVariant vIndex = 0;
// put into input element <input...
// UserID
IDispatch *pDisp1 = NULL;
//Text1
if ( SUCCEEDED ( pAll -> item ( vName1, vIndex, &pDisp1 ) ) && pDisp1 )
{
IHTMLInputElement *pInput = NULL;
if ( SUCCEEDED ( pDisp1 -> QueryInterface ( IID_IHTMLInputElement, ( LPVOID* )&pInput ) ) && pInput )
{
WideString tt;
pInput->get_value(&tt);
Form1->Label1->Caption=tt;
//pInput->put_value(WideString("asdasas"));
pInput -> Release ();
}
pDisp1 -> Release ();
}
}
}
pHTMLDocument -> Release ();
}
}
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
// Ïóñêàåì êîä ñ ñàìîãî íà÷àëà!
TVariant path=GetCurrentDir()+"//1.htm"; //Ïåðåìåííàÿ ñòðîêè áðîóçåðà
Browser1->Navigate2(path,0,0,0,0);//Ïóñêàåì áðîóçåð
}
//---------------------------------------------------------------------------
void __fastcall TForm1::OnStatusTextChangeBrowser1(TObject *Sender, BSTR URL)
{
if (URL[0]=='S' && URL[1]=='e' && URL[2]=='n' && URL[3]=='d')
{
GetFromAST();
RB1->Left=StrToInt(Label1->Caption);
}
ASTStatus->Caption=URL;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
GetFromAST();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if (Browser1->Width==0)
{
Browser1->Width=600;
Browser1->Height=300;
}
else
{
Browser1->Width=0;
Browser1->Height=0;
}
}
//---------------------------------------------------------------------------
А вот праильный код javascript клиента
CODE
<html><head><title>Test Script</title></head> <script language=JavaScript> function ASTSend(data){ASTInterface.value=data;window.status="Send";window.status="";}
function startcode()
{
scroll();
}
var i = 0;
function scroll()
{
ASTSend(i);
i++;
setTimeout("scroll()", 10);
}
</SCRIPT><body onload=startcode()><p><input type="text" name="ASTInterface"></p></body></html>
Скролл двигается вправо надеюсь терь все правильно отобразится на форуме...