2008-10-31 34 views
10

Nếu tôi có loại được xác định là bộ một loại được liệt kê, thật dễ dàng để tạo bộ trống với [], nhưng làm cách nào để tạo một tập hợp đầy đủ?Làm cách nào để điền vào một bộ Delphi?

EDIT: Vâng, giải pháp hiển nhiên là sử dụng vòng lặp for. Đó cũng là một giải pháp thực sự tồi tệ nếu có một cách khác. Có ai biết một cách mà sẽ làm việc trong thời gian không đổi?

+1

Bạn biết đó là một bitet, vì vậy hãy sử dụng kiến ​​thức đó và điền vào bằng tất cả các số 1. Không có ngôn ngữ nguyên thủy cho nó. –

Trả lời

14

Low() và High() là "biên dịch ma thuật" chức năng có thể được đánh giá ở thời gian biên dịch. Điều này cho phép sử dụng chúng trong các tờ khai không đổi như sau:

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

Dude! Đó là TỐT! ;) Cảm ơn bạn! –

+0

Tôi thậm chí còn xóa câu trả lời của riêng tôi, sau đó;) –

7

mỗi Barry của đề nghị:

FillChar(VarSet, SizeOf(VarSet), $FF); 
Các vấn đề liên quan