Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi TWebbrowser fokussiert TForm bei Refresh automatisch (https://www.delphipraxis.net/120613-twebbrowser-fokussiert-tform-bei-refresh-automatisch.html)

JayRZay 13. Sep 2008 17:44


TWebbrowser fokussiert TForm bei Refresh automatisch
 
Moin mal wieder.

Ich habe eine Frage zum TWebbrowser in Delphi7.

Meine Form enthält einen TWebbrowser, der automatisch refresht wird, um regelmäßig den Quelltext einer Website auszulesen. Das soll im Hintergrund in einem Intervall von mehreren Sekunden bis Minuten passieren, funktioniert auch, das einzige Problem:

Jedes Mal wenn die Seite refresht wird, wird das Fenster der Anwendung in den Vordergrund geholt. Das ist natürlich nicht Sinn der Sache, weil die Anwendung im Hintergrund laufen soll.

Wenn man die Anwendung minimiert, wird sie zwar nicht in den Vordergrund geholt aber das Fenster, in dem ich grade bin (also das einer anderen Anwendung) verliert den Fokus (d.h. Titelleiste wird grau, die Eingabefelder in denen ich bin verlieren den Fokus usw.). Außerdem wird der Taskbar-Eintrag meines Programms aktiv (vgl. Blinken des ICQ-Eintrags bei einer neuen Nachricht).

Ich habe probiert, ob es hilft, das Programm ganz aus der Taskbar zu nehmen und nur noch im System-Tray zu betreiben, aber der Effekt ist derselbe wie beim normalen Minimieren (außer dass natürlich in der Taskbar nix mehr aktiv wird).

Außerdem habe ich probiert, das refreshen durch ein neuladen der aktuellen Seite zu ersetzen, das ändert ebenfalls nichts.

Man muss also jedes Mal mit Alt+Tab wieder zur eigentlich aktiven Anwendung zurückwechseln, wenn in meiner Anwendung im Hintergrund ein refresh läuft und das nervt natürlich. Bei Intervallen von einer Minute mags noch in Ordnung gehen aber bei 10 Sekunden isses schon lästig. Außerdem möchte ich gerne das Problem beheben statt es nur zu ignorieren.

Also zusammengefasst, ich möchte eine Seite im TWebbrowser laden/refreshen, ohne dass meine Form aktiviert wird.

Ich bin für jeden Hinweis dankbar!

toms 13. Sep 2008 18:26

Re: TWebbrowser fokussiert TForm bei Refresh automatisch
 
Zitat:

Zitat von JayRZay
um regelmäßig den Quelltext einer Website auszulesen.

Hallo, warum machst du das via Webbrowser? Den Quelltext kannst du auch z.B mit Indy holen.

JayRZay 13. Sep 2008 19:01

Re: TWebbrowser fokussiert TForm bei Refresh automatisch
 
Naja ich brauche den Webbrowser auch noch als normalen Webbrowser und er war halt dabei. Indy hatte ich früher mal für Delphi 5 oder 6, da erinnere ich mich, Probleme damit gehabt zu haben. Ich werds mir aber nochmal ansehen, danke schonmal dafür. Wenn es läuft und die Funtionalität für mein Programm im gleichen Maß brauchbar ist, wieso nicht.

Wenn sich mit TWebbrowser noch eine Lösung finden sollte wäre ich aber weiterhin interessiert.

Danke!

Edit: Welche Indy-Komponente kann denn Websites als Browser darstellen?

MSSSSM 13. Sep 2008 19:26

Re: TWebbrowser fokussiert TForm bei Refresh automatisch
 
Keine, die IdHTTP fordert den Quelltext an.

JayRZay 13. Sep 2008 19:48

Re: TWebbrowser fokussiert TForm bei Refresh automatisch
 
Hm, na gut; selber rendern möchte ich ihn eigentlich nicht. Aber danke jedenfalls.

toms 13. Sep 2008 22:15

Re: TWebbrowser fokussiert TForm bei Refresh automatisch
 
Zitat:

Zitat von JayRZay
Hm, na gut; selber rendern möchte ich ihn eigentlich nicht. Aber danke jedenfalls.

Muss denn die Webseite für den Benutzer sichtbar sein?
Falls nein: z.B mit IdHTTP den Quelltext holen.

Wegen dem Webbrowser Problem: Kann ich nicht reproduzieren.
Erstelle mal ein neues Project mit einem TWebbrowser + TTimer und rufe eine Seite im Interval auf / resp. mache einen Refresh.

JayRZay 14. Sep 2008 01:37

Re: TWebbrowser fokussiert TForm bei Refresh automatisch
 
Zitat:

Zitat von toms
Zitat:

Zitat von JayRZay
Hm, na gut; selber rendern möchte ich ihn eigentlich nicht. Aber danke jedenfalls.

Muss denn die Webseite für den Benutzer sichtbar sein?
Falls nein: z.B mit IdHTTP den Quelltext holen.

Eigentlich schon. Allerdings kann ich das Problem vermutlich umgehen indem ich die Anzeige im Webbrowser lasse und das rippen über Indy durchführe, sofern das fehlerfrei funktioniert.

Zitat:

Zitat von toms
Wegen dem Webbrowser Problem: Kann ich nicht reproduzieren.
Erstelle mal ein neues Project mit einem TWebbrowser + TTimer und rufe eine Seite im Interval auf / resp. mache einen Refresh.

Es ist Websiteabhängig, ich nehme an es hängt mit Javascript zusammen. Das Programm soll Client für einen Onlinechat sein, das heißt, einige Schwächen ausbessern und loggen. Eigentlich aktualisiert sich die Anzeige von selber, allerdings muss man Aktivität zeigen um nicht rausgeschmissen zu werden und die Alternativen heißen Schreiben oder Refreshen.

Naja wie gesagt, wenn das Laden mit Indy keine Aktivierung der Form produziert und es dem Chat als Lebenszeichen reicht (ich bin noch nicht dazu gekommen, es auszuprobieren), kann ich dabei bleiben. Ich hatte nur gedacht, vielleicht kommt das Problem jemandem bekannt vor.

Danke für die Hilfe!


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:09 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