2008-10-31 8 views
10

Jeśli mam typ zdefiniowany jako zestaw wyliczony typ, łatwo jest utworzyć pusty zestaw z [], ale jak utworzyć pełny zestaw?Jak wypełnić zestaw Delphi?

EDYCJA: Tak, oczywistym rozwiązaniem jest użycie pętli for. To również bardzo złe rozwiązanie, jeśli istnieje inny sposób. Czy ktoś wie o sposobie, który będzie działał w stałym czasie?

+1

wiesz, że to bitset, więc wykorzystać tę wiedzę i napełnić go all-1s. Nie ma dla niego prymitywów językowych. –

Odpowiedz

14

Low() i High() są funkcje "kompilator magii", które mogą być oceniane w czasie kompilacji. Umożliwia to ich zastosowanie w stałych deklaracji jak następuje:

 
var 
    MySet : TBorderIcons; 
    MySet2 : TBorderIcons; 
const 
    AllIcons : TBorderIcons = [Low(TBorderIcon)..High(TBorderIcon)]; 
begin 
    MySet := [Low(TBorderIcon)..High(TBorderIcon)]; 
    MySet2 := AllIcons; 
end; 
+0

Koleś! To było dobre! ;) Dziękuję Ci! –

+0

Po tym kasuję nawet własną odpowiedź;) –

7

Per Barry'ego sugestia:

FillChar(VarSet, SizeOf(VarSet), $FF);