Announcement

Collapse
No announcement yet.

Webbrowser dynamisch erzeugen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Webbrowser dynamisch erzeugen

    Hallo,
    vielleicht kann mir jemand helfen.
    Ich möchte zur Laufzeit eine neue Instanz des CppWebbrowsers erzeugen.Er soll auf ein ebenfalls dynamisch erzeugtes Tabsheet.
    Hab dabei folgenden Code benutzt, der zwar keine Fehler bringt aber die Komponente leider nicht anzeigt.
    <pre>
    ptrTabSheet = new TTabSheet(TFweb::PageControl1);
    ptrTabSheet->PageControl = PageControl1;
    TCppWebBrowser* pwb;

    pwb = new TCppWebBrowser(pTabSheet);
    TWinControl(pwb).Parent =pTabSheet;
    pwb->Align = alClient;
    pwb->Show();
    pwb->Navigate(WideString("htp://xyz.de"));
    </pre>
    Vielen Dank für Hilfe im Voraus

  • #2
    Naja, Top und Left wären doch auch ganz gu
    Christian

    Comment


    • #3
      Danke für die Antwort, aber das wars leider nicht

      pwb->Left=ptrTabSheet->Left;
      pwb->Top=ptrTabSheet->Top;

      Zeigt die neue Instanz trotzdem nicht an,
      auch nicht mit konstanten Werten für Links und Oben.
      Muss das neue Objekt nicht noch erzeugt werden, etwa so:

      pwb=TCppWebBrowser->Create(pTabSheet);

      Da bekomme ich aber einen Fehler :
      Ungültige Verwendung von typedef TCppWebBrowser

      Kann mir sonst noch jemand helfen

      Comment


      • #4
        dumme Fragen:

        Muß das nicht
        <PRE>
        pwb = new TCppWebBroser(Application);
        </PRE>
        heißen? (bin ich mir aber nicht sicher, könnte mir auch NULL vorstellen)

        Und was soll das Casten von pwb nach TWinControl in der Zeile darunter? Und wieso mit . anstatt ->? Bei dynamischen Objekten MUSS das mit -> geschehen.

        pwb->Show() ist überflüssig, das zugrundeliegende Formular muß angezeigt werden.

        Aber ich habe mich mit dem dynamischen Erzeugen von Komponenten bisher nicht beschäftigt...

        Grüße Joche

        Comment


        • #5
          Und wo kommt das pTabSheet her? Ezeugt wurde ein ptrTabSheet

          Comment


          • #6
            und pwb hat kein Parent?
            Christian

            Comment


            • #7
              pTabSheet muss natürlich ptrTabSheet heissen(verschrieben)
              Das zugrundeliegende Formular ist bereits angezeigt, TFweb.

              pwb hat kein Parent, wie meinst Du das?

              pwb->Parent=ptrTabSheet
              wäre ja ok, geht aber nicht, da die Webbrowser Komponente nicht auf ein TabSheet konvertiert werden kann. Also caste ich sie in ein TWinControl, dort bekomme ich aber bei dieser
              Zeile:

              TWinControl(pwb)->Parent =ptrTabSheet;

              den Fehler: Zeiger auf Struktur auf linker Seite von -> erforderlich

              beim Punkt erhalte ich keinen Fehler.
              Das heisst aber nicht, dass dass kein Fehler ist

              Muss doch irgend ne Möglichkeit geben eine WebBrowser Komponente dynamisch zu erzeugen und auf einem ebenfalls dynamisch erzeugten Tabsheet anzuzeigen, hm ..

              Comment


              • #8
                Jede Komponente braucht ein parent, die als Elternobjekt für die Anzeigen zuständig ist.

                Ohne diesen wird das Objekt nicht angezeigt, da die Anzeige siche jeweils von den Eltern zu den Kindern hinarbeitet.

                Und wenn ich im Formulareditor ein Webbrowser auf ein Tabsheet legen kann, sollte das auch dynamisch gehen.

                Versuch mal

                pwb = new TCppWebBrowser(ptrTabSheet)
                Christian

                Comment


                • #9
                  Das hatte ich ja in meinem ersten Beitrag schon gemacht, pwb=new TCppWebBrowser(ptrTabSheet); Trotzdem, nix zu machen :

                  Comment


                  • #10
                    <i>pwb->Parent=ptrTabSheet wäre ja ok, geht aber nicht, da die Webbrowser Komponente nicht auf ein TabSheet konvertiert werden kann.</i><br>
                    Heißt das, der Compiler akzeptiert die Zeile nicht? Was bemäkelt er denn exakt?
                    <p>Uli

                    Comment


                    • #11
                      Er bemäkelte Cannot convert TTabSheet to _di_lDispatch, womit er vermutlich recht hat

                      Habe die Lösung aber inzwischen erhalten
                      Ich schreib sie hier mal auf, falls es wieder mal so ein Problem gibt :

                      <pre>
                      TTabSheet *ptrTabSheet=new TTabSheet(TForm1::PageControl1);
                      ptrTabSheet->PageControl = PageControl1;
                      TCppWebBrowser* pwb = new TCppWebBrowser(this);

                      /////////TATAA
                      ptrTabSheet->InsertControl(pwb);
                      /////////
                      pwb->Align = alClient;
                      pwb->Navigate(WideString("http://www.xyz.de"));
                      pwb->Show();
                      </pre>

                      Grüsse, Fran

                      Comment

                      Working...
                      X