Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Konstante fmCreate in D2009 <-> XE4 (https://www.delphipraxis.net/181464-konstante-fmcreate-d2009-xe4.html)

AJ_Oldendorf 18. Aug 2014 10:13

Konstante fmCreate in D2009 <-> XE4
 
Hallo zusammen,
wir haben gerade herausgefunden, dass die Konstante "fmCreate" unter D2009 den Wert $FFFF hat und unter XE4 den Wert $FF00.
Nachdem wir jetzt unseren Quelltext angepasst haben, laufen die FileStream Operationen auch wieder.
Gibt es irgendwo eine Übersicht, was sich noch alles geändert hat, damit man das mal prüfen kann? Von außen kann man das ja gar nicht erkennen wenn man nicht gerade bei dieser Operation ein Problem hat und sich reindebuggt.
Gibt es von Embacadero eine entsprechende Übersicht oder sowas ähnliches?

Viele Grüße
Alex

Bernhard Geyer 18. Aug 2014 10:19

AW: Konstante fmCreate in D2009 <-> XE4
 
Und wo war jetzt das Problem genau?
Hast du wohl mit den Werten statt den Konstanten gearbeitet?

AJ_Oldendorf 18. Aug 2014 10:30

AW: Konstante fmCreate in D2009 <-> XE4
 
Nein, es wurde als Übergabe an das Create mit

Delphi-Quellcode:
fmCreate or fmShareDenyWrite
gearbeitet und später im Programm der Mode mit

Delphi-Quellcode:
Mode = fmCreate
abgefragt. Das ging dann eben unter D2009 weil der Mode ein Word war und damit immer 65535 (egal ob mit oder ohne "or fmShareDenyWrite"). Unter XE4 geht das natürlich dann nicht mehr (fmCreate = 65280 und fmShareDenyWrite = 32)

Gruß
Alex

DeddyH 18. Aug 2014 10:33

AW: Konstante fmCreate in D2009 <-> XE4
 
Mit
Delphi-Quellcode:
if (Mode and fmCreate) = fmCreate
hätte es in beiden Fällen funktioniert.

AJ_Oldendorf 18. Aug 2014 10:49

AW: Konstante fmCreate in D2009 <-> XE4
 
Jetzt weiß ich auch woher das kommt bei uns ;-)

Unter D2009:
Delphi-Quellcode:
TFileStream.Create
...

if Mode = fmCreate then
Unter XE4:
Delphi-Quellcode:
TFileStream.Create
...

if (Mode and fmCreate = fmCreate) then
Da hat Embacadero also auch was nachbauen müssen ;-)

Trotzdem wiederhole ich meine Frage. Gibt es eine Übersicht, was sich noch so alles im "Hintergrund" geändert hat?

Gruß
Alex

Bernhard Geyer 18. Aug 2014 10:53

AW: Konstante fmCreate in D2009 <-> XE4
 
Zitat:

Zitat von AJ_Oldendorf (Beitrag 1268943)
Jetzt weiß ich auch woher das kommt bei uns ;-)

Unter D2009:
Delphi-Quellcode:
TFileStream.Create
...

if Mode = fmCreate then
Unter XE4:
Delphi-Quellcode:
TFileStream.Create
...

if (Mode and fmCreate = fmCreate) then
Da hat Embacadero also auch was nachbauen müssen ;-)

Nachbauen oder einfach nur einen lange schlummernten Fehler/Problemstelle behoben.

Zitat:

Zitat von AJ_Oldendorf (Beitrag 1268943)
Trotzdem wiederhole ich meine Frage. Gibt es eine Übersicht, was sich noch so alles im "Hintergrund" geändert

Zu jeder neuen Verision gibts ein Whats-New Dokument und diverse Artikel auf den Developer-Seite. Für D2009/Unicode war diese sogar sehr ausführlich.
Für dein Konkretes Problem glaube ich nicht das man das einem Wort auf dieser Seite gewürtigt hat. Maximal wird man hier vermutlich nur einen Kommentar zum entsprechenden QC-Eintrag finden.

himitsu 18. Aug 2014 12:00

AW: Konstante fmCreate in D2009 <-> XE4
 
Das war wohl auch der Grund für den Umbau, denn früher wurde beim Create das Sharing ignoriert/übersehn/vergessen. :stupid:

Bei Werten mit nur einem Bit wäre ja ein
Delphi-Quellcode:
Mode and fmIrgendwas <> 0
gegangen und bei mehreren Bits, halt das bereits genannte
Delphi-Quellcode:
Mode and fmCreate = fmCreate
,
welches früher und heute genauso funktionieren würde.



Ab den Professional könnte man die Delphi-Quellcodes in ein VCS einchecken und sieht dann jede Änderung. :stupid:


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