Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Warum verschiedene Konstantenarten? (https://www.delphipraxis.net/103081-warum-verschiedene-konstantenarten.html)

Mazel 9. Nov 2007 16:43


Warum verschiedene Konstantenarten?
 
Hallo,

da ich gerade am verbeissern meines Programmes bin, daher nochmal genau drüber schaue, und ich vorher Konstanten immer so übernommen habe, wie sie zum Beispiel auch in der Windows.pas zu finden sind, frage ich mich nun, warum zum Beispiel für SystemParametersInfo die Konstanten SPI_... mal Hexadezimal und mal als Integer angegeben werden?
Delphi-Quellcode:
SPI_SETDOUBLECLICKTIME = $20;
SPI_SETMOUSEBUTTONSWAP = 33;
Mazel

mkinzler 9. Nov 2007 16:46

Re: Warum verschiedene Konstantenarten?
 
Das weiss wohl nur der Entwickler der Unit.

OregonGhost 9. Nov 2007 17:38

Re: Warum verschiedene Konstantenarten?
 
Das Ziel ist dabei, andere Entwickler, die sich den Quellcode anschauen, zu verwirren. Einmal nicht aufgepasst, schon ist alles durcheinander.

alzaimar 9. Nov 2007 18:14

Re: Warum verschiedene Konstantenarten?
 
Windows ist "Closed Source". Es ist absolut verboten, irgendwelche Teile zu verstehen. Mit dem sog. 'inconsistent constant declarations security mechanism' (ICDSM) hat Microsoft ein inzwischen patentiertes Verfahren entwickelt, um jegliche Spionageversuche im Keim zu ersticken. Dies geschieht durch sog. 'brain unfolding', dem Vorläufer des Code-foldings. :stupid:

Mazel 9. Nov 2007 21:24

Re: Warum verschiedene Konstantenarten?
 
Hehe. Wie es aussieht, gibt es da wohl noch andere Beispiele? Aber warum haben die Übersetzer aus C zu Delphi, die Konstanten belassen? Wenn ich an deren Stelle wär, würde ich diese doch so umformen, dass sie alle gleich sind bzw. der gleichen Art entsprechen (entweder Hex oder Int).

OregonGhost 9. Nov 2007 22:00

Re: Warum verschiedene Konstantenarten?
 
Naja, Konstanten werden teilweise einfach nach und nach hinzugefügt, zum Beispiel weil sie einfach in einer neuen Version neu sind. Wenn das dann ein anderer Schreiberling macht, kann das schonmal passieren.

Reinhard Kern 10. Nov 2007 00:59

Re: Warum verschiedene Konstantenarten?
 
Zitat:

Zitat von Mazel
Hehe. Wie es aussieht, gibt es da wohl noch andere Beispiele? Aber warum haben die Übersetzer aus C zu Delphi, die Konstanten belassen? Wenn ich an deren Stelle wär, würde ich diese doch so umformen, dass sie alle gleich sind bzw. der gleichen Art entsprechen (entweder Hex oder Int).

Hallo,

MS-Bashing ist ja in, aber nicht immer angebracht, es gibt auch Gründe für unterschiedliche Basis:

Wenn ich einfach was abzähle, z.B. Zustände 1 .. 15, dann gebe ich das dezimal an, weil jeder normale Mensch auch so zählt.

Wenn ich Adressen angebe, dann meistens in Hex, weil die nun mal in Kilo=1024 usw. organisiert sind und Dezimale Adressen daher wenig aussagefähig.

Bei kombinierten Flags ebenfalls Hex oder wenns geht gleich Binär.

Geldbeträge in Hex oder Steuersätze wären auch eine ausgesprochen blöde Idee.

Einigen Antwortern hier scheinen solche Zusammenhänge völlig unbekannt zu sein - da erübrigt sich jede zusätzliche Massnahme zur Verwirrung. Vielleicht sollten sich manche doch erst mal mit den Grundlagen wie z.B. Zahlensysteme befassen, bevor sie grundlos auf MS einprügeln. Dafür gibt es noch genügend seriösen Anlass, allerdings benötigt man dazu auch eine entsprechende Qualifikation.

Gruss Reinhard

sirius 10. Nov 2007 01:16

Re: Warum verschiedene Konstantenarten?
 
Hey, wer ist denn hier so aufbrausend?

Die Kommentare oben waren doch nur lustig gemeint (und haben bei mir auch ihre Wirkung nicht verfehlt ;-)
Warum die Zahlen unterschiedlich angegeben werden ist hier unerheblich, wahrschienlich aus dem Grunde, den Ghost genannt hat. Auf jeden Fall beoi diesem Ausschnitt kann es keiner Deiner gewesen sein.

Mazel 10. Nov 2007 10:05

Re: Warum verschiedene Konstantenarten?
 
Zitat:

Zitat von Reinhard Kern
MS-Bashing ist ja in, aber nicht immer angebracht, es gibt auch Gründe für unterschiedliche Basis:

Wenn ich einfach was abzähle, z.B. Zustände 1 .. 15, dann gebe ich das dezimal an, weil jeder normale Mensch auch so zählt.

Wenn ich Adressen angebe, dann meistens in Hex, weil die nun mal in Kilo=1024 usw. organisiert sind und Dezimale Adressen daher wenig aussagefähig.

Bei kombinierten Flags ebenfalls Hex oder wenns geht gleich Binär.

Geldbeträge in Hex oder Steuersätze wären auch eine ausgesprochen blöde Idee.

Du hast Recht, das unterschiedliche Basis je nach Aufgabenbereich angebracht ist aber doch nicht wie in diesem Fall. $20(16) = 32(10). Es wär doch logischer statt $20 32 zu schreiben.

Assertor 10. Nov 2007 11:44

Re: Warum verschiedene Konstantenarten?
 
Hi,

sind denn die Konstanten in der Windows.h bzw. im SDK auch in verschiedenen Zahlensystemen? Ich hab gestern kurz geguckt, da waren die alle einheitlich.

Also nix mit Windows-Bashing, ist ja nur bei Codegear so. Da ließe sich auch viel "bashen"...

Gruß Assertor


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:00 Uhr.
Seite 1 von 2  1 2      

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