ich habs nu so:
Delphi-Quellcode:
function TFormMain.ExtractGR(
url: OleVariant): Double;
var
s, s2:
string;
i1, i2: integer;
begin
if pos('
s=',
url) > 0
then begin
WB_GetHTMLCode(wb2,dis);
s := dis.Text;
i1 := pos('
edl', s) + 12;
i2 := pos('
//', s) - 1;
s2 := copy(s, i1, i2 - i1);
try
result:=strtofloat(s3);
except
result:=0;
end;
end;
end;
function tformMain.getDis(start:
string): Double;
begin
//....
wb2.Navigate(ExtractFilePath(application.ExeName)+'
rechne.htm');
WaitForBrowser(wb2);
berechnenclick;
// klickt einen button auf der geladen seite 'rechne.htm'
WaitForBrowser(wb2);
Result := ExtractGR(wb2.LocationURL);
end;
procedure TFormMain.wb2DocumentComplete(Sender: TObject;
const pDisp: IDispatch;
var URL: OleVariant);
begin
if pDisp = wb2.DefaultInterface
then
ExtractGR(
url);
end;
procedure TformMain.berechnenclick;
var
ovElements: OleVariant;
i: Integer;
begin
ovElements := wb2.OleObject.Document.forms.item(0).elements;
for i := 0
to (ovElements.Length - 1)
do
begin
if
(ovElements.item(i).
type = '
submit')
then
ovElements.item(i).Click;
end;
end;
ist immer noch das selbe prob der wert kommt zu spät. ich hab mal ein showmessage bei
Delphi-Quellcode:
try
result:=strtofloat(s3);
showmessage(floattostr(result));
except
result:=0;
end;
hier ist der aufruf.
Delphi-Quellcode:
procedure TFormMain.Button1Click(Sender: TObject);
begin
showmessage('Sollwert:'+floattostr(getdis('(14:91:12)')));
end;
Es kommen 2 showmessages zu erst eins mit "Sollwert: 0"
Das zweite dann mit dem richtigen wert.
Was soviel bedeuetet dass die funktion wieder zu schnell durchläuft da das 2te showmessage erst später kommt. Was kann ich noch probieren ?
@marabu
hab ich versucht die action.php?mit parametern auszufüren.
das ganze mit idhttp.get(acctionurl mit parameter)... währe das einfachste nur funktioniert das ganze nur wenn ich eine normale form nehme und dann so submit drücke. evtl werden da auch de werte von submit übertragen auf jedenfall gings ned hab da lange dran getestet.