![]() |
Inhalt eines ID-Elementes in einem bestimmten Frame ändern
Hallo Wissende,
dank des Codes von Marabu habe ich lernen dürfen, dass man im Webrowser auch automatisiert Inhalte ersetzen kann. Da ich mein Layout in 3 Frames aufteilen musste, habe ich das Problem, dass folgender Code nicht mehr funktioniert, wie er es vorher in einem Frame tat.
Delphi-Quellcode:
Das Label mit der ID str_Uhr befindet sich aber nun in einem Frame namens "bottom". Kann man dies auch explizit ansprechen, denn mit obigem Code findet er dieses item nicht...!?
//gibt in einem label die zeit sekündlich aus
procedure TForm1.clockTimer(Sender: TObject); var doc: IHTMLDocument2; e: IHTMLElement; begin doc := web_cis.Document as IHTMLDocument2; e := doc.all.item('str_Uhr', 0) as IHTMLElement; if e<>nil then e.innerText := TimeToStr(now) end; Danke Tom |
Re: Inhalt eines ID-Elementes in einem bestimmten Frame ände
Hallo Tom,
die folgende Funktion verschafft dir über den Index Zugang zu einem Frame:
Delphi-Quellcode:
Und ungefähr so könntest du es benutzen:
function GetFrameDoc(doc: IHTMLDocument2; v: OleVariant): IHTMLDocument2;
var win: IHTMLWindow2; u: IUnknown; ec: IHTMLElementCollection; begin u := doc.frames.item(v); if Assigned(u) and Succeeded(u.QueryInterface(IHTMLWindow2, win)) then Result := win.Document else Result := nil; end;
Delphi-Quellcode:
Grüße vom marabu
var
doc, fdoc: IHTMLDocument2; e: IHTMLElement; begin doc := web_cis.Document as IHTMLDocument2; fdoc := GetFrameDoc(doc, 2); // letzter von drei frames ? e := fdoc.all.item('str_Uhr', 0) as IHTMLElement; if Assigned(e) then e.innerText := TimeToStr(now) end; |
Re: Inhalt eines ID-Elementes in einem bestimmten Frame ände
Volltreffer!
|
Re: Inhalt eines ID-Elementes in einem bestimmten Frame ände
Hallo Marabu. Vielen Dank für Deine Beiträge hier. Die haben mir sehr geholfen.
Jetzt bleiben mir noch 2 Fragen a) Wenn ich mit mshtml arbeite kommen manchmal Popup Windows hoch. Wie kann ich das verhindernß b) Wenn ich mit IHMTLElementCollection.item durch einen Baum gehe und irgend eine Node erwische. Woher weiss ich was es alles für Interfaces unterstützt bzw auf was ich casten kann? Thx Andreas |
Re: Inhalt eines ID-Elementes in einem bestimmten Frame ände
Hallo Andreas,
herzlich willkommen in der Delphi-PRAXiS - und vielen Dank für die Blumen. Leider habe ich deinen Beitrag erst heute entdeckt - und das auch noch eher zufällig. Wahrscheinlich hast du dir deine Fragen inzwischen selbst beantworten können. Für den Fall, dass dem nicht so ist:
![]() ![]() ![]() Wenn du in der DP binnen 24 Stunden keine Antwort auf einen Beitrag erhältst, darfst du gerne nachhaken. Da der Thread für mich abgeschlossen war, habe ich ihn nicht weiter beobachtet. Da du mich persönlich adressiert hast, haben sich alle anderen Mitglieder zurück gelehnt und gedacht: Der marabu wird es schon richten. Du hättest einen neuen Thread aufmachen sollen oder eine PN an mich schicken, dass du einen alten Thread aktiviert hast. Freundliche Grüße |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz