Michael Landenberger
2017-02-06 10:15:27 UTC
Hallo,
ich habe hier ein mit Delphi 4 erstelltes 32bit-Programm. Dieses enthält
einige Formulare mit TListView-Komponenten mit ViewStyle = vsReport. Das
Programm läuft auf allen derzeit verbreiteten Windows-Versionen bis
einschließlich Windows 10 einwandfrei, mit einer einzigen Ausnahme: Windows 7
64bit. Nur unter diesem Betriebssystem friert das Programm reproduzierbar ein,
wenn eines der Formulare mit einem TListView geöffnet wird. Das Formular wird
zwar noch angezeigt, aber das ListView ist leer und es fehlen auch die
Spaltenköpfe. Auf Benutzereingaben reagiert das Programm dann nicht mehr, man
kann es nur noch im Task-Manager abschießen. Ich habe daraufhin die
Eigenschaft "ShowColumnHeaders" des ListViews mal testweise auf "False"
gesetzt, worauf das Programm nicht mehr abstürzte. Offenbar passiert der Crash
beim Zeichnen der Spaltenköpfe.
Ich habe daraufhin den Programmcode durchforstet, kann aber nichts finden, was
den Absturz verursachen könnte. Erstaunlich ist, dass das Programm auf
sämtlichen 32bit- *und* 64bit-Versionen von Windows Vista, 8(.1) und 10 sowie
unter Windows 7 32bit (und sogar noch unter einem 32bit-XP) einwandfrei läuft,
nur eben nicht auf Windows 7 64bit.
Ich habe testweise mal eine eigene, von TWinControl abgeleitete
ListView-Komponente probiert, die hat das Problem nicht.
Ist irgendein Bug in den TListView- oder TListColumn-VCL-Komponenten bekannt,
der diesen Absturz verursachen könnte? Eine Suche im Netz hat leider keine
brauchbaren Hinweise geliefert. Auch im VCL-Quelltext ist mir nichts
aufgefallen.
Gruß
Michael
ich habe hier ein mit Delphi 4 erstelltes 32bit-Programm. Dieses enthält
einige Formulare mit TListView-Komponenten mit ViewStyle = vsReport. Das
Programm läuft auf allen derzeit verbreiteten Windows-Versionen bis
einschließlich Windows 10 einwandfrei, mit einer einzigen Ausnahme: Windows 7
64bit. Nur unter diesem Betriebssystem friert das Programm reproduzierbar ein,
wenn eines der Formulare mit einem TListView geöffnet wird. Das Formular wird
zwar noch angezeigt, aber das ListView ist leer und es fehlen auch die
Spaltenköpfe. Auf Benutzereingaben reagiert das Programm dann nicht mehr, man
kann es nur noch im Task-Manager abschießen. Ich habe daraufhin die
Eigenschaft "ShowColumnHeaders" des ListViews mal testweise auf "False"
gesetzt, worauf das Programm nicht mehr abstürzte. Offenbar passiert der Crash
beim Zeichnen der Spaltenköpfe.
Ich habe daraufhin den Programmcode durchforstet, kann aber nichts finden, was
den Absturz verursachen könnte. Erstaunlich ist, dass das Programm auf
sämtlichen 32bit- *und* 64bit-Versionen von Windows Vista, 8(.1) und 10 sowie
unter Windows 7 32bit (und sogar noch unter einem 32bit-XP) einwandfrei läuft,
nur eben nicht auf Windows 7 64bit.
Ich habe testweise mal eine eigene, von TWinControl abgeleitete
ListView-Komponente probiert, die hat das Problem nicht.
Ist irgendein Bug in den TListView- oder TListColumn-VCL-Komponenten bekannt,
der diesen Absturz verursachen könnte? Eine Suche im Netz hat leider keine
brauchbaren Hinweise geliefert. Auch im VCL-Quelltext ist mir nichts
aufgefallen.
Gruß
Michael