![]() |
Flag (Enumeration) übergeben
Als welchen Typ übergibt man denn bei einem FlagSet ein einzelnes Flag?
Delphi-Quellcode:
Procedure DelPrnFlag (var Flags: TPrnFlags; Flag: ???);
begin if Flag in Flags then Flags:= Flags-[Flag]; end; |
AW: Flag (Enumeration) übergeben
TPrnFlags wird wohl ein "set of XXX" sein - ich mutmaße mal "set of TPrnFlag", womit letzteres dein Kandidat wäre ;)
|
AW: Flag (Enumeration) übergeben
Delphi-Quellcode:
Die Procedure soll Flags-Flag rechnen, als z.B. Flags-rot. Welchen Typ hat den rot ?
type
TPrnFlags = set of (rot, gruen, blau, ...); var Flags: TPrnFlags |
AW: Flag (Enumeration) übergeben
Dann kannst du es vergessen dir sowas selber zu deklarieren, denn dafür benötigst du eine einzelne Typdeklaration, für den Enum.
Delphi-Quellcode:
.
type TMySet = set of TMyEnum;
Du kannst es auch direkt entfernen und mußt nicht erst prüfen. Das
Delphi-Quellcode:
bei Sets entfernt die Flags bitweise und nicht arithmetisch.
-
Delphi-Quellcode:
entspricht eigentlich einem
x := y - z;
Delphi-Quellcode:
.
x := y and not z;
Wenn du aber eh nur einzelne Flags entfernen/hinzufügen wollst, dann nutze doch einfach die fertigen Funktionen. :wink: > ![]() ![]() DelPrnFlag = Exclude
Delphi-Quellcode:
if Flag in Flags then Flags:= Flags-[Flag];
Flags:= Flags-[Flag]; // prüfen nicht nötig Exclude(Flags, Flag); |
AW: Flag (Enumeration) übergeben
Okay, thanx. Exclude und Include kannte ich nicht.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:58 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