AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi ActiveXForm-Anwendung funktioniert in IE6, aber nicht in IE7
Thema durchsuchen
Ansicht
Themen-Optionen

ActiveXForm-Anwendung funktioniert in IE6, aber nicht in IE7

Ein Thema von McLing · begonnen am 6. Jan 2007 · letzter Beitrag vom 7. Jan 2007
Antwort Antwort
McLing

Registriert seit: 6. Jan 2007
6 Beiträge
 
Delphi 7 Professional
 
#1

ActiveXForm-Anwendung funktioniert in IE6, aber nicht in IE7

  Alt 6. Jan 2007, 20:28
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.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: ActiveXForm-Anwendung funktioniert in IE6, aber nicht in

  Alt 6. Jan 2007, 21:03
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.
(Microsoft verteilt kostenlose virtuelle Festplatte mit 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)
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
McLing

Registriert seit: 6. Jan 2007
6 Beiträge
 
Delphi 7 Professional
 
#3

Re: ActiveXForm-Anwendung funktioniert in IE6, aber nicht in

  Alt 6. Jan 2007, 22:13
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.
  Mit Zitat antworten Zitat
McLing

Registriert seit: 6. Jan 2007
6 Beiträge
 
Delphi 7 Professional
 
#4

Re: ActiveXForm-Anwendung funktioniert in IE6, aber nicht in

  Alt 7. Jan 2007, 10:21
Wer so unklare Fragen stellt wie ich, darf keine Antworten erwarten. Ehe mir das jemand anders sagt, sag' ich's lieber selber.

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.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:45 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