Вытащить значение переменной из сгенерированной средствами делфи стран

  • Автор темы Ekushenko
  • Дата начала
E

Ekushenko

Привет всем.
Делаю диплом, возникла проблемка, решил что на форуме легче будет спросить...

Необходимо вытыщить значение переменной из Ява скрипта формируемого в Делфи. Формируется страница HTML, используются классы и методы гугл.мапс. НО суть не в этом. Переменные объявляются в скрипте, нужно вытащить их на форму.

текст:

<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">код</div></div><div class="sp-body"><div class="sp-content">
Код:
unit Unit1;
interface
uses
...

type
TForm1 = class(TForm)
///
procedure HTMLGenerat;
///

private
CodeHTML: string;
GeneratedHTML,zoom_index,matrice_im age : TStringList;
map:Tbitmap;
nb,statu_nb:integer;
nbimage_Long,nbimage_Lati:real;
statu_b:boolean;
end;

var
Form1: TForm1;
MyMouse: TMouse;
metka: boolean;
HTML_Text:string;

implementation

const
TEMP_FILE_NAME = '\BAGMaps.html';
{$R *.dfm}
procedure Tform1.HTMLGenerat;
begin

CodeHTML := '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"'
+'"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'#13
+'<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">'#13
+'<head>'#13
+'<meta http-equiv="content-type" content="text/html; charset=utf-8"/>'#13
+'<title>Google Maps JavaScript API Example: Simple Map</title>'#13
+'<script src="http://maps.google.com/maps?file=api&v=2&key='+ Key.Text+'"'#13
+'type="text/javascript"></script>'#13
+'<script type="text/javascript">'#13
+'function initialize() {'#13
+'if (GBrowserIsCompatible()) {'#13
+'var map = new GMap2(document.getElementById("map_ canvas"));'#13
+'map.setCenter(new GLatLng('+Latitude.Text +','+ Longitude.Text +'),'+inttostr(Zoom.ItemIndex) + ','+'G_'+MapType.Text +'_MAP'+');'#13

// Вот наши переменные
+'var xt,yt = 0;'#13 

// здесь мы в них положим нужную инфу
+'map.getCenter(xt,yt,true);'#13
// а вопрос - как достать на форму? 

+' }'#13
+' }'#13
+'</script>'#13
+'</head>'#13
+'<body onload="initialize()" onunload="GUnload()">'#13
+'<div id="map_canvas" style="width: 800px; height: 600px"></div>'#13
+'</body>'#13
+'</html>'#13;
HTML_Text := 'любой текст!!!';
CodeHTML := CodeHTML + HTML_Text;

end;

procedure Delay(ms: longint);
var
TheTime: LongInt;
begin
TheTime := GetTickCount + ms;
while GetTickCount < TheTime do
Application.ProcessMessages;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
xt,yt: integer;
begin
HTMLGenerat;
GeneratedHTML.Text :=CodeHTML;
GeneratedHTML.SaveToFile(TEMP_FILE_ NAME);
webBrowser1.Navigate(TEMP_FILE_NAME );
xt:= WebBrowser1.GetProperty('xt');
showmessage (inttostr(xt));

// webBrowser1.Navigate('D:\11Telechar gement\13-01-2008\Convert Latitude - Longitude in Degrees-Minutes-Seconds to-from Decimal (FCC) USA.mht');

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
GeneratedHTML := TStringList.Create;
zoom_index := TStringList.Create;
matrice_image := TStringList.Create;
statu_b:=false;
nbimage_Lati:=90;
statu_nb:=0;

end;

.....

end.


// Вот наши переменные
+'var xt,yt = 0;'#13

// здесь мы в них положим нужную инфу
+'map.getCenter(xt,yt,true);'#13
// а вопрос - как достать на форму?

вот в этой части текста к примеру надо вытащить xt,yt.
надо чтобы эти значения при генерации страницы передавались любой другой внутренней переменной самой программы, т.е. чтобы вытащить потом ее на форме

можно сделать проще (неизвестно насколько проще) - чтобы значение переменных просто выводились текстом в самом html, чтобы позже можно было их просто прочесть из файла. НО как это сделать?
 
V

vital

Нужно эти значения ваши значения выводим в элементы <input type="hidden">, т.е где-то в жс будет что-то в духе
Код:
<input type="hidden" id="1">
<script>
document.getElementById("1").value="Ваше значние";
</script>
А дальше, нужно средствами DOM найти эти инпуты и получить их значения.
Для этог смотрим в сторону - WebBrowser.OleObject.Document. Что-то-там
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!