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

Тема в разделе "Delphi - Сети", создана пользователем Ekushenko, 22 мар 2010.

  1. Ekushenko

    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">
    Код (Text):
    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&amp;v=2&amp;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, чтобы позже можно было их просто прочесть из файла. НО как это сделать?
     
  2. vital

    vital Больной Компом Детектед

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

Поделиться этой страницей