AGB  ·  Datenschutz  ·  Impressum  







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

Set Konstanten einen Wert zuweisen

Ein Thema von DrUArn · begonnen am 21. Feb 2018 · letzter Beitrag vom 22. Feb 2018
 
DrUArn

Registriert seit: 20. Mär 2003
130 Beiträge
 
Delphi 10.3 Rio
 
#1

Set Konstanten einen Wert zuweisen

  Alt 21. Feb 2018, 11:14
Delphi-Version: XE
Hi Comm,
Delphi-Quellcode:
type


tdockopt_UA=( DockBasicSize_UA, //gehört bei der Größenbestimmung dazu
              DockAuto_UA, //soll von self angedockt werden
              DockHori_UA) //Anordnung von in horizontaler Reihenfolge sonst vertiKal


tDockOpts_UA =set of tdockOpt_UA;

const


TagOpts2hochX_UA:array [tdockopt_UA]of integer = (1,2,4);//16,32,64,128,256,512,1024);

der Zugriff auf die Potenzen von 2 in TagOpts2hochX_UA ist umständlich:

Delphi-Quellcode:
function getPotenz(von:tdockopt_UA);
begin
result:=TagOpts2hochX_UA[von]
end;
Das geht ja noch.
Noch umständlicher wird es, wenn ich iterieren muß:

Delphi-Quellcode:
Procedure settag;
var i:integer;
    opts: tDockOpts_UA
begin
for I := integer(Low(tDockopt_UA)) to integer(High(tDockopt_UA)) do
opts:=opts +[tDockopt_UA(i)];
tag:=0;

for I := integer(Low(tDockopt_UA)) to integer(High(tDockopt_UA)) do
begin
  if tDockopt_UA(i) in opts then
     Tag:=Tag or TagOpts2hochX_UA[tDockOpt_UA(i)];//Bitweise Zuordnung für Tag

//oder fest codiert ... und da gäbe es noch mehr Eigenschaften
        tag:=FlagOn_UA(tag,TagOpts2hochX_UA[DockBasicSize_UA] or TagOpts2hochX_UA[DockAuto_UA]
                         or TagOpts2hochX_UA[DockHori_UA]);



end;

Nun die Frage:
Gibt es eine Möglichkeit, ein set oder Array zu schaffen,
in welchem sowohl die Bezeichner als auch die zugehörigen Potenzen vereinigt sind.

also im Prinzip
Delphi-Quellcode:
const
DockBasicSize_UA=1;
DockAuto_UA=2;
DockHori_UA=4; //Anordnung von in horizontaler Reihenfolge sonst vertiKal
in eine durchzählbare Struktur zu packen?

Grüße Uwe
  Mit Zitat antworten Zitat
 

 

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 18:09 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