CppWebBrowser Status abfragen



  • ich muss über TCP/IP eine Verbindung zu einem Gerät herstellen. Dazu verwende ich den CppWebBrowser. Die Verbindung funktioniert.
    Wie kann ich prüfen ob die Seite geladen wurde bzw eine Verbindung hergestellt wurde zB für den Fall, dass das Gerät nicht eingeschaltet ist.



  • Der CppWebBrowser hat ein Ereignis OnNavigateError das bei Fehlerfall
    aufgerufen wird und OnDocumentComplete nach erfolgreicher Seitenanzeige.



  • wie kann ich konkret überprüfen ob die Methode aufgerufen wurde. Ich möchte so was in der Art:

    if (CppWebBrowser geladen)
    {
       mach das;
    }
    else MessageDlg("konnte nicht geladen werden");
    


  • 😕
    Nutz doch einfach die Events wenn sie schon da sind...

    void __fastcall TForm1::OnDocumentComplete(/*...*/)
    {
       // mach was
    }
    void __fastcall TForm1::OnNavigateError(/*...*/)
    {
        MessageDlg("konnte nicht geladen werden");
    }
    


  • das Ereignis OnNavigateError() gibts bei meiner Builder-Version nicht. Hab nochmal in die Hilfe geschaut bei TCppWebBrowser und da taucht das Ereignis nicht auf. Ich verwende den Borland Builder 5.0.

    habs so gelöst (webTest ist der Browser, url ist die Adresse):

    void __fastcall TfrmHO::Timer1Timer(TObject *Sender)
    {
       if (webTest->LocationURL == url)
       {
          labStatus->Caption = "Status: Verbindung zu " + url + " erfolgreich";
          labStatus->Font->Color = clGreen;
          // weitere Anweisungen....
       }
       else
       {
          labStatus->Caption = "Status: keine Verbindung";
          labStatus->Font->Color = clRed;
       }
    }
    

    das funktioniert so weit... was meint ihr?



  • Ganz ehrlich?
    Motte den Builder 5.0 ein und besorg dir nen aktuellen Compiler. Wenn´s von Borland/Codegear/Embarcadero nix Freies gibt nimm halt MS Visual Studio (wenn das Arbeitsumfeld das erlaubt).



  • sitze auf der 5er Version wegen betrieblichen Vorgaben fest.



  • rudpower schrieb:

    ich muss über TCP/IP eine Verbindung zu einem Gerät herstellen. Dazu verwende ich den CppWebBrowser.

    Muss es den Unbedingt CPPWebBrowser sein? Muss der Benutzer auf einer Web-Oberfläche interagieren können? Sonst könnte man das ja über eine simple TCP-Verbindung lösen.



  • in dem Fall muss es über den WebBrowser sein. Es handelt sich um ein Messgerät bei dem man sich über eine Browser-Verbindung über die IP des Geräts verbindet. Dort stehen dann Messwerte, die ich für eine Datenerfassung aufnehmen muss. Die lese ich einfach aus den HTML-Code aus. Eine andere Verbindung lässt der Hersteller des Geräts nicht zu.



  • rudpower schrieb:

    Die lese ich einfach aus den HTML-Code aus.

    Dann sollte sich auch eine Komponente wie TIdHTTP verwenden lassen. Da bekommest du den HTML-Code der Webseite als AnsiString zurück und kannst ihn mit SubString, Pos etc. wie gewohnt parsen.


Anmelden zum Antworten