Sets in BCB Sets in BCB are an emulation of Pascal sets. They are implemented as a class template. Therefore this is easier to understand if you are familiar with both Pascal sets and C++ templates - but it's not essential. A set type is declared like this: typedef Set set_type; I will no doubt be shot down in flames for saying this, but you can think of this as using a kind of super-macro which sets up a class 'set_type', an instance of which can hold elements of type 'element_type' between 'minval' and 'maxval'. That falls a long way short of describing C++ templates but it's good enough! Then you can declare instances of this set type as needed: set_type mySet; Borland have used overloaded stream operators << and >> to permit adding elements to a set and removing them - the analogy with streams is imperfect but does make sense. The following is a trivial console app which demonstrates the basic use of Sets: //--------------------------------------------------------------------------- #include #include #include #include #include // needed for sets #include #include #pragma hdrstop //--------------------------------------------------------------------------- USERES("Project1.res"); //--------------------------------------------------------------------------- typedef enum {apples, oranges, bananas, pears} fruit_t; typedef Set < fruit_t, apples, pears > fruit_set; void ShowFruit(const fruit_set &fs); int main(int argc, char **argv) { fruit_set FruitBowl; // create the set FruitBowl << apples << bananas << pears; // initialise it ShowFruit(FruitBowl); FruitBowl >> apples; // take out apples FruitBowl << oranges; // add oranges ShowFruit(FruitBowl); FruitBowl.Clear(); // empty the bowl ShowFruit(FruitBowl); getch(); //pause return 0; } void ShowFruit(const fruit_set &fs) { cout << "[ "; if (fs.Contains(apples)) cout << "apples "; if (fs.Contains(oranges)) cout << "oranges "; if (fs.Contains(bananas)) cout << "bananas "; if (fs.Contains(pears)) cout << "pears "; cout << "]" << endl << endl; } //========================================= The rest of the syntax for sets is in the online help. Good luck! Steve Balcombe