AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Bitmaske in Set speichern

Ein Thema von Andreas H. · begonnen am 15. Jan 2008 · letzter Beitrag vom 15. Jan 2008
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Andreas H.
Andreas H.

Registriert seit: 3. Mär 2006
Ort: Schopfloch
163 Beiträge
 
Delphi 2006 Professional
 
#1

Bitmaske in Set speichern

  Alt 15. Jan 2008, 12:51
Hallo,

wie kann ich eine Bitmaske (integer) in einem Set speichern?

Delphi-Quellcode:
    TToolStatus = set of
    (
      tsAktiv = 1, // Kennung A
      tsFreigeg = 2, // Kennung F
      tsGesperrt = 4, // Kennung G
      tsVermessen = 8, // Kennung M
      tsVorwarn = 16, // Kennung V
      tsWZW = 32, // Kennung W
      tsFestplatz = 64, // Kennung P
      tsBenutzt = 128 // Kennung E
    );
Geht das auch, ohne jedes mögliche Element mittels AND abzufragen?

Gruß Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Bitmaske in Set speichern

  Alt 15. Jan 2008, 12:54
Delphi-Quellcode:
TToolStatus = (tsAktiv, ...); //Ohne Angabe ID
TToolStatusSet = set of TToolStatus;
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Andreas H.
Andreas H.

Registriert seit: 3. Mär 2006
Ort: Schopfloch
163 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Bitmaske in Set speichern

  Alt 15. Jan 2008, 13:00
Und dann

Delphi-Quellcode:
var Menge:TToolStatusSet;

begin
  Menge:=7;
end;
Das geht?

Und wie ist die Wertigkeit der Mengenelemente? 1. Element hat kleinse Wertigkeit?

Andreas
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#4

Re: Bitmaske in Set speichern

  Alt 15. Jan 2008, 13:07
Ein Set fängt bei 0 an - das sieht man auch, wenn man die Maus darüber bewegt, oder sich die Code-Hilfe öffnet.
  Mit Zitat antworten Zitat
Benutzerbild von Andreas H.
Andreas H.

Registriert seit: 3. Mär 2006
Ort: Schopfloch
163 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Bitmaske in Set speichern

  Alt 15. Jan 2008, 13:08
Werde es probieren!

Super, Danke

Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Bitmaske in Set speichern

  Alt 15. Jan 2008, 13:11
Delphi-Quellcode:
var Menge:ToolStatusSet;
begin
  Menge := TToolStatusSet(7);
end;
Wobei fraglich ist ob das Beispiel sinnvoll ist.
Kann etwas gleichzeitig Aktiv, Freigegeben und Gesperrt sein?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#7

Re: Bitmaske in Set speichern

  Alt 15. Jan 2008, 13:12
Ähm nochwas,

das, was Du vorhast, geht so nicht!

Erstens würde es
Delphi-Quellcode:
var
 Menge: [b]T[/b]ToolStatusSet;
lauten, und zweitens kannst Du eine Zuweisung so nicht per Wertigkeit vornehmen, sondern nur über den Bezeichner, also z.B.
Menge := [tsBenutzt]; Es sei denn, Du machst es so, wie es Bernhard Geyer zeigt.
Wenn Menge ein Set ist, dann darfst Du die Klammern nicht vergessen!
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#8

Re: Bitmaske in Set speichern

  Alt 15. Jan 2008, 13:35
Hallo Andreas,

geht es wirklich um allgemeine Set-Operationen?

Ich habe deine Frage eigentlich anders verstanden: Set of in Ordinal umwandeln

Freundliche Grüße
  Mit Zitat antworten Zitat
Benutzerbild von Andreas H.
Andreas H.

Registriert seit: 3. Mär 2006
Ort: Schopfloch
163 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Bitmaske in Set speichern

  Alt 15. Jan 2008, 13:51
Danke marabu,

so geht es.

Wenn ich es so mache wie Bernhard es vorgeschlagen hat, kommt: ungültige Typumwandlung.

BY THE WAY wie finde ich sowas im Handbuch/Hilfe? Das sehe ich das erste Mal
Byte(w):=7; Gruß Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: Bitmaske in Set speichern

  Alt 15. Jan 2008, 13:54
Zitat von Andreas H.:
Wenn ich es so mache wie Bernhard es vorgeschlagen hat, kommt: ungültige Typumwandlung.
Hätte ich noch: "Blindschuss" ergänzen sollen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:32 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