Moin
ich have eine funktion welche eine webseite über den twebbrowser aufruft beim ereignis onDocumentcomplet über gebe ich einen wert welcher von der webseite ist an einer globaler variabel.
in der funktion übergebe ich an result diese globale variabel. jedoch ist die funktion schon fertig bis das onDocumentcomplete über haupt durch is. ich habs versuch mit einem sleep bevor ich die globale variabel am funktions resultat übergebe geht auch ned dann schläft das ganze prog auch das ereigniss onDocumentcomplete. has auch mit while und until versucht und zwar als abbruch bedingung war dass die globale variabel den wert ändert. das kommt aber einem sleep gleich da die ganze reicheleistung sich auf dise schlaufe klausel konsentriet. ich bräuchte eine art sleep funktion die nur eine funktion anhält bis der wert der globalen variabel verfügbar ist. Ich habs ma mit nem thread versucht klappt auch ned ganz. wie kann ich das problem lösen
Delphi-Quellcode:
private
GR:double;
getDis(start:
string):double;
//...
function tformMain.getDis(start:
string):double;
begin
//....
wb2.Navigate(extractfilepath(application.ExeName)+'
rechne.htm');
result:=GR;
end;
procedure TFormMain.wb2DocumentComplete(Sender: TObject;
const pDisp: IDispatch;
var URL: OleVariant);
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
GR:=strtofloat(s2);
except
GR:=0;
end;
end;
end;
danke für eure hilfe
greetz cy