Du verlierst ein Byte, aber es ist dir egal, weil du genügend davon hast. Ist auch ein Standpunkt.
Zu deiner eigentlichen Frage: Das Ereignis OnBeforeNavigate2() hast du dir richtig ausgesucht. Es gibt noch andere Ansätze, aber vielleicht ist das ja für dich der richtige. Du kannst die Handhabung für komplexere Anwendungen noch vereinfachen, indem du ein eigenes Protokoll verwendest.
Code:
marabu:appid=demo&code=007&test=false
Delphi-Quellcode:
function TWebForm.CheckUrl(
url:
String): Boolean;
var
s: TStrings;
begin
Result := CompareText(ParseStr(
url, '
:'), '
marabu') = 0;
if Result
then
begin
s := TStringList.Create;
s.Delimiter := '
&';
s.DelimitedText :=
url;
ShowMessage(s.Text);
s.Free;
end;
end;
procedure TWebForm.WebBrowserBeforeNavigate2(Sender: TObject;
const pDisp: IDispatch;
var URL, Flags, TargetFrameName, PostData,
Headers: OleVariant;
var Cancel: WordBool);
begin
Cancel := CheckUrl(
url);
end;
marabu