Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Exe (mit Delphi 2010 erzeugt) klappt auf Win XP, nicht auf Win 7, Win 8 (https://www.delphipraxis.net/178136-exe-mit-delphi-2010-erzeugt-klappt-auf-win-xp-nicht-auf-win-7-win-8-a.html)

enigma 19. Dez 2013 13:47

Exe (mit Delphi 2010 erzeugt) klappt auf Win XP, nicht auf Win 7, Win 8
 
Hallo an alle,

ich habe ein für mich kurioses Problem mit einer .exe: Eine mit Delphi 2010 auf Win XP erzeugte .exe (VLS.exe)
funktioniert, wenn ich sie auf Win XP ausführe, jedoch nicht, wenn ich sie auf Win 7 oder Win 8 (beide 64 Bit) ausführe.

Das Problem tritt beim PaintBox1Paint-Ereignis auf:
Ich erzeuge im VLS-Programm MDIChildren, deren Klasse (Unterklasse von TForm) eine PaintBox als Komponente enthält.
Auf PaintBox1.Canvas wird im Ereignis PaintBox1Paint meine procedure DrawPages zum Darstellen des Inhalts (z.B. mit TextOut) ausgeführt.

Wenn ich mit der Delphi 2010-IDE den Programmablauf auf Win XP und Win 7 verfolge, treten Unterschiede auf:
Unter Win XP wird stets nur Paint auf dem PaintBox.Canvas des zuletzt erzeugten MDIChild ausgeführt.

Unter Win 7 tritt PaintBox1Paint zuerst mit dem zuvor erzeugten (also dem gerade aktuellen) MDIChild auf,
dann mit dem neu erzeugten - das alte und das neue MDIChild wechseln sich dann ab.
Der Fehler liegt darin, dass beim Paint des zuvor erzeugten MDIChild eine Berechnung ausgeführt wird, die zu einem Fehler führt.
Vorher wurde die Berechnung schon mal ohne Fehler ausgeführt - diesen Fehler habe ich noch nicht bis zu einem Ergebnis gelöst.

Aber was mich wundert ist:

- der unterschiedliche Programmablauf unter Win XP und Win 7
- warum tritt dieser Fehler beim Verwenden der VLS.exe unter Win 7 auf,
die unter Win XP erzeugt wurde und dort auch funktioniert.

Vielen Dank für jeden Hinweis!

Sherlock 19. Dez 2013 13:55

AW: Exe (mit Delphi 2010 erzeugt) klappt auf Win XP, nicht auf Win 7, Win 8
 
Eventuell Crosspost zu http://forum.delphi-treff.de/index.p...Add&boardID=14 ?

;)

Sherlock

DeddyH 19. Dez 2013 13:59

AW: Exe (mit Delphi 2010 erzeugt) klappt auf Win XP, nicht auf Win 7, Win 8
 
Nicht ganz, sondern zu http://forum.delphi-treff.de/index.p...threadID=59334. Auf der Gegenseite habe ich das bereits korrigiert ;)

himitsu 19. Dez 2013 14:06

AW: Exe (mit Delphi 2010 erzeugt) klappt auf Win XP, nicht auf Win 7, Win 8
 
Seit Win7/Vista werden die Fenster durch den Desktop-Window-Manager behandelt, welcher sich, unter Anderem, die Ausgabe zwischenspeichert (Cache).
> für die Vorschau in der Taskleiste, beim Taskwechsel usw.
> ebenso vorallem für die Behandlung der Transparenz der Fenster auf dem Desktop (nicht ständig das Bild von der Form abfragen, nur weil ein halbtransparentes Fenster drüber liegt und der DWM den "Hintergrund" dafür benötigt)
> usw.

Da kann dann schonmal die Reihenfolge der Fenster eine Andere sein.



Du solltest dich aber nicht eh auf eine Reihenfolge verlassen oder gar versuchen zwanghaft eine Bestimmte herzustellen,
sondern besser den/deinen Fehler suchen, weswegen es eigentlich knallt.


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