Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Problem mit API-Funktion in Kombination mit tWebbrowser (https://www.delphipraxis.net/50055-problem-mit-api-funktion-kombination-mit-twebbrowser.html)

c.wuensch 20. Jul 2005 05:03


Problem mit API-Funktion in Kombination mit tWebbrowser
 
Hi an alle,

im tWebbrowser kann man über das DOM mit Hilfe von MS-API-Funktionen gut auf die einzelnen Objekte einer HTML-Seite zugreifen.

Leider habe ich bei der folgenden Anweisung Probleme, die alle Stylesheets der Seite durchgehen, und später dann teilweise ersetzen soll:

Delphi-Quellcode:
  procedure GetStyleSheets;
  var
    testcol: IHtmlStyleSheetsCollection;
    Sheet: IHtmlStyleSheet;
    Testvar: Olevariant;
  begin
    StyleSheets := IHtmlDocument2(Browser.Document).styleSheets As IHtmlStyleSheetsCollection;
    For i:=0 To StyleSheets.length-1 Do Begin
      Testvar := i;
      Sheet := StyleSheets.item(Testvar) As IHtmlStyleSheet;
      Showmessage (Sheet.href);
    End;
  end;
In der Zeile "Sheet := StyleSheets.item(Testvar) As IHtmlStyleSheet;" erhalte ich dann immer nur die Fehlermeldung:

[Fehler] Main_u.pas(630): Inkompatible Typen: 'OleVariant' und 'IHTMLStyleSheet'

oder auch "Operator kann auf Operanden nicht angewendet werden".

Wahrscheinlich mache ich hier irgendwelche Fehler mit der API, komme aber leider nicht drauf, was ich falsch mache.

Kann mir da vielleicht irgend jemand helfen???

Cu, Chris

marabu 20. Jul 2005 06:09

Re: Problem mit API-Funktion in Kombination mit tWebbrowser
 
Hi Chris,

probiere es noch mal so:
Delphi-Quellcode:
var
  doc: IHTMLDocument2;
  cStyles: IHTMLStylesheetsCollection;
  i: integer;
  ss, vi: OleVariant;
begin
  doc := WebBrowser.Document as IHTMLDocument2;
  cStyles := doc.styleSheets; // kein cast notwendig
  for i := 0 to cStyles.length - 1 do begin
    vi := i;
    ss := cStyles.item(vi);  // kein cast möglich
    ShowMessage(ss.href);
  end;
end;
Grüße vom marabu

c.wuensch 20. Jul 2005 12:43

Re: Problem mit API-Funktion in Kombination mit tWebbrowser
 
Klappt perfekt!!! Danke Marabu!

Nur löschen kann ich ein solches StyleSheet immernoch nicht (dafür scheint es leider keine Prozedur zu geben, oder weißt du hier auch eine Lösung?

Cu, Chris


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:19 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz