Einzelnen Beitrag anzeigen

Benutzerbild von c113plpbr
c113plpbr

Registriert seit: 18. Nov 2003
Ort: localhost
674 Beiträge
 
Delphi 2005 Professional
 

Re: Keine Post-Daten beim OnBeforeNavigate2-Event (TWebBrows

  Alt 15. Mär 2007, 20:28
Also, ich hab jetzt eine Methode gefunden, damit das ganze funktioniert, obwohl ich dies für ziemlich sinnlos halte:
Delphi-Quellcode:
function GetPostData(PostData: OleVariant): string;
var
  i: Integer;
begin
  Result := '';
  if not(VarIsEmpty(PostData) or (VarToStr(PostData) = ''))then
    for i := 0 to VarArrayHighBound(PostData, 1) - 1 do
      Result := Result + Chr(StrToInt(PostData[i]));
end;

function SetPostData(PostData: string): OleVariant;
var
  i: Integer;
begin
  Result := VarArrayCreate([0, Length(PostData) - 1], varByte);
  for i := 1 to Length(PostData) do
    Result[i - 1] := Ord(PostData[i]);
end;

procedure TForm2.WebBrowser1BeforeNavigate2(ASender: TObject;
  const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
  Headers: OleVariant; var Cancel: WordBool);
var
  PostData2: OleVariant;
begin
  //...
  Cancel := true;
  PostData2 := SetPostData(GetPostData(PostData));
  (ASender as TWebBrowser).Navigate2(URL, Flags, TargetFrameName, PostData2, Headers);
  //...
end;
Hier werden zuerst die PostDaten in einen String umgewandelt, und wieder "zurückgewandelt" in einen Var-Array of Byte ... danach gehts komischerweise ...

Und noch etwas für die Freunde der IE-ActiveX-Alternative, dem Mozilla-ActiveX-Control von http://www.iol.ie/~locka/mozilla/control.htm: In der letzten, mir bekannten Version werden im BeforeNavigate2-Event *keine* Post-daten übergeben ... lässt sich auch hier nachlesen ...

ciao, Philipp
Philipp
There is never enough time to do all the nothing you want.
*HABENWILL*
  Mit Zitat antworten Zitat