![]() |
ActiveXForm-Anwendung funktioniert in IE6, aber nicht in IE7
Hallo,
ich hätte da eine Frage an hartgesottene Experten: ich habe mit Delphi 7 Pro eine ActiveXForm-Anwendung geschrieben, die (nach vielen, vielen Iterationen) auch recht zuverlässig lief. Bis kürzlich MS den IE7 rausbrachte. Im IE 6 läuft alles okay. Im IE 7 gibt's massive Probleme, und zwar mit temporären Kindfenstern des Hauptformulars der ActiveX-Anwendung. Diese werden für Benutzereingaben verwendet. Sie werden on the fly erstellt, angezeigt, benutzt, die Daten werden von Methoden des Hauptformulars ausgelesen und die Fenster selber danach gleich wieder entsorgt. Im IE 6 verhalten Sie sich wie erwartet, d.h. (fast) wie Kindfenster eines "normalen" Win32-Programms. Im IE 7 wird ein solches Fenster ziemlich transparent dargestellt, und seine Komponenten sind weitgehend funktionslos. Z.B. lässt sich das Fenster nicht mehr über einen "Schließen"-Button schließen. Nachrichtenübermittlung von einer Komponente zur Nachbar-Komponente (z.B. zwischen 2 Editfeldern beim Fokuswechsel) funktionieren ebenfalls nicht mehr. Weiß jemand, worauf dieses traurige Verhalten zurückzuführen ist? Fast hat man den Eindruck, dass MS selber den Leuten den Ausstieg aus ActiveX nahelegen will. Könnte das sein? Und die wichtigste Frage: weiß jemand, wie man die ursprüngliche Funktionalität (die ja offenbar korrekt implementiert ist) auch im IE 7 wieder realisieren kann? Mit freundlichem Gruß McLing. |
Re: ActiveXForm-Anwendung funktioniert in IE6, aber nicht in
Moin McLing,
erst einmal herzlich willkommen hier in der Delphi-PRAXiS. Da es aus Deinem Posting nicht hervorgeht: Hast Du denn auch mal die ganzen Internet Settings der beiden Versionen verglichen, ob es dort Unterschiede gibt? Solltest Du jetzt keinen Rechner mehr mit IE 6 zur Verfügung haben: Es gibt von MS eine virtuelle Festplatte für Virtual PC 2004 mit, englischem, Windows XP und IE 6. ( ![]() Virtual PC 2004 bietet MS auch zum kostenlosen Download an. Mit der Kombination solltest Du es zumindest mal prüfen können (falls sich nicht jemand findet, der direkt eine Lösung für das Problem hat) |
Re: ActiveXForm-Anwendung funktioniert in IE6, aber nicht in
Hallo,
die IE-Einstellungen scheinen mir nicht das Problem zu sein. Die ActiveX-Anwendung wird ja in beiden Fällen gestartet und läuft auch korrekt - bis eben auf die massiven Probleme mit den Kindfenstern! AFAIK gibt es überhaupt keine IE-Einstellung, die sich auf Kindfenster von Applets oder ActiveX-Komponenten bezieht. Ich habe die Sache auf einem Rechner probiert, auf dem ich ein Update von IE 6 auf IE 7 gemacht habe, und soweit ich sehen kann, wurden dabei alle Internet-Einstellungen übernommen. Gruß McLing. |
Re: ActiveXForm-Anwendung funktioniert in IE6, aber nicht in
Wer so unklare Fragen stellt wie ich, darf keine Antworten erwarten. Ehe mir das jemand anders sagt, sag' ich's lieber selber. :wall:
Die wichtigste Information fehlte, nämlich dass es sich bei den problematischen Kindfenstern um nichtmodale Fenster handelt! Diese sollen (als "StayOnTop" erzeugt) immer im Vordergrund bleiben, während das Hauptfenster der Anwendung aber seinerseits ebenfalls Windows-Botschaften empfangen und verarbeiten kann. Konkret: der Benutzer soll ein Objekt im Hauptfenster anklicken können, und das nicht-modale Eingabefenster im Vordergrund wird dann vom Hauptformular benachrichtigt, welches Objekt angeklickt wurde. Offenbar schiebt nun der IE 7 einen Riegel vor, den der IE 6 noch offen ließ, so dass in einer ActiveX-Anwendung jetzt nur jeweils ein Fenster aktiv sein kann, also Mausbotschaften empfangen kann. Ein Hinweis darauf ist, dass das Kindfenster im IE 7 nur blass dargestellt wird. Es ist zwar vorhanden, weil es auf Botschaften vom Hauptformular wirklich reagieren kann, bekommt aber selbst keine Botschaften von Windows gesendet. Ich werde mich wohl damit abfinden müssen, mein Eingabefenster modal zu machen. Oder weiß jemand, wie man mit nicht-modalen Fenstern in einer ActiveXForm-Anwendung korrekt umgeht? :? Gruß McLing. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:58 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