Hallo und guten Morgen.
Sorry, dass ich gestern nicht mehr antworten konnte, ist der Stress ausgebrochen.
Shmia: Ich möchter auf ein Text-Eingabefeld zugreifen (input type Text). Grundsätzlich ist das für das aktuelle Problem wurscht, aber für alternative Wege vielleicht nicht. Zugriff auf ein Element Type button ist auch noch von nöten.
by Thom: Erst mal Dank für deine Mühe. Vorweg, in einem kleinen Testprojekt klappt der Zugriff:
wb.OleObject.Document.All.Item('ItemName').Value := 'Test';
ohne Probleme. WB ist dabei natürlich TEmbeddedWB. Das Problem steckt da, dass ich über einen Vorfahren/anderen Weg zugreifen will/muss. Also ohne Einbindung des Packages/
Unit EmbeddedWB. In deiner Funktion übergibst du einen Parameter vom Typ TWebBrowser. Ich denke mal, du gehst davon aus, dass ich dann sicher TEmbeddedWB benutzen muss und die beiden nicht "kompatibel" sind. Damit bin ich dann wieder da wo ich vorher war, ich muss die entsprechenden Units einbinden. Konkret in Bezug auf deine Funktion suche ich jetzt für die Übergabe einen Typ, der einem Vorfahren entspricht. Dabei gehe ich davon aus, dass sowohl TWebBrowser wie auch TEmbeddedWB nicht die Klassen sind, die OleObjekt und somit Dokument einbinden. Das erfolgt doch sicher im Rahmen der Vererbung viel früher. Da ich an keinen anderen Eigenschaften interessiert bin will ich einfach auf diesen Vorfahren casten und somit auf die Eigenschaft zugreigen. Mal ein einfaches Beispiel, ich habe ein Panel und will den Namen haben. In meiner Funktion will ich den Parameter in dem ich das Panel übergebe aber auch für andere Komponenten benutzen. So definiere ich den Parameter als TComponent. Stopfe ich da das Panel rein (TComponent(MyPanel)), so kann ich innerhalb der Funktion mittels AComponent.Name den Namen des übergebenen Panels erreichen. Ja, und das nun mit dem Browser und zugriff auf OleObject. Mein Versuch mit TOleControl ging in die Hose. Welcher Klassentyp ist der richtige?
Gruß oki