![]() |
const Deklaration in record-typ deklaration
Hallo,
ich habe eine library-Datei heruntergeladen, die ich mit Delphi5 verwenden möchte. Ich glaube, die Syntax ist von "free Pascal" abgeleitet. Der Compiler meckert aber and der Stelle "CAIRO_STATUS_SUCCESS = 0," mit der Meldung " ',' oder ')' erwartet, aber '=' gefunden" Weiß jemand, was diese Konstruktion bewirkt, und wie ich sie in Delphi 5 umsetzten kann? type cairo_status_t = ( CAIRO_STATUS_SUCCESS = 0, CAIRO_STATUS_NO_MEMORY, CAIRO_STATUS_INVALID_RESTORE, CAIRO_STATUS_INVALID_POP_GROUP }; Danke, Philipp |
Re: const Deklaration in record-typ deklaration
in D5 ist es noch nicht möglich Enum-Elementen Werte zuzuweisen, aber da hier der erste Wert eh 0 ist, laß einfach das =0 weg.
PS: wir haben hier ein [delphi]-Tag, um Quellcode hübsch darzustellen
Delphi-Quellcode:
type
cairo_status_t = ( CAIRO_STATUS_SUCCESS, CAIRO_STATUS_NO_MEMORY, CAIRO_STATUS_INVALID_RESTORE, CAIRO_STATUS_INVALID_POP_GROUP); |
Re: const Deklaration in record-typ deklaration
Hallo himitsu,
danke für die prompte Antwort. Leider habe ich in der library auch Konstruktionen, in denen die Wertzuweisung nicht null ist. Gibt es vielleicht in D5 trotzdem einen Möglichkeit, eine entsprechende Konstruktion umzusetzen?
Delphi-Quellcode:
cairo_content_t = ( CAIRO_CONTENT_COLOR = $1000, CAIRO_CONTENT_ALPHA = $2000, CAIRO_CONTENT_COLOR_ALPHA = $3000 ); |
Re: const Deklaration in record-typ deklaration
Delphi-Quellcode:
Müsstest du mal testen, kann das grad nicht ausprobieren... ;)
const
CAIRO_CONTENT_COLOR = $1000; CAIRO_CONTENT_ALPHA = $2000; CAIRO_CONTENT_COLOR_ALPHA = $3000; type cairo_status_t = ( CAIRO_CONTENT_COLOR, CAIRO_CONTENT_ALPHA, CAIRO_CONTENT_COLOR_ALPHA); |
Re: const Deklaration in record-typ deklaration
ich glaub das ging nicht und wenn dem so ist, dann eher so:
Delphi-Quellcode:
const
CAIRO_CONTENT_COLOR = $1000; CAIRO_CONTENT_ALPHA = $2000; CAIRO_CONTENT_COLOR_ALPHA = $3000; type cairo_status_t = Word; |
Re: const Deklaration in record-typ deklaration
Äh, ja, macht auch irgendwie Sinn... :gruebel:
|
Re: const Deklaration in record-typ deklaration
Hallo,
die Lösung von himitsu ist wahrscheinlich die beste Umsetzung. Wenn ich die Konstruktion damit ersetzte, brauche ich nur noch an den Stellen, wo der Compiler meckert, die entsprechenden Ausdrücke ersetzten, und es funktioniert. Schönen Dank an alle, die mir so zügig geholfen haben.
Delphi-Quellcode:
const
CAIRO_CONTENT_COLOR = $1000; CAIRO_CONTENT_ALPHA = $2000; CAIRO_CONTENT_COLOR_ALPHA = $3000; type cairo_status_t = Word; |
Re: const Deklaration in record-typ deklaration
du mußt nur aufpassen ... das WORD hab ich anhand der Konstanten so gelegt,
aber je nach Speicherausrichtung, der Schnittstelle auf der anderen Seite, müßtest du da eventuell noch was ändern, falls es Probleme gibt. z.B. nach Integer/LongInt oder Cardinal/LongWord in C sind z.B. viele Enumeratoren 4 Byte groß, wärend in Delphi standardmäßig vieles nur 1 Byte ist, da {$MINENUMSIZE 1} |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:56 Uhr. |
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