15:43

Дельфи

душа моя, я с тебя шизею
Здраствуйте. Вопрос по Дельфи.
Есть четко упорядоченный список, который может меняться в процессе программы (порядок).
Логически он очень подходит под перечисление, но перечисление - это константа и его нельзя менять в процессе выполнения программы.
Данный список, упорядоченный от 1 до н (число элементов у меня не меняется), я использую в качестве индексов массива и все.
Так как нельзя менять тип перечисление в процессе работы программы, мне пришлось создать ряд простых переменных, в который содержаться цифры от 1 до н. Но слишком уже этот набор переменных является набором данных одного типа, как цвета у светафора. Поэтому хотелось бы отнести их определенному перечисляемому типу, чтобы программа была наглядной.

Можно ли каким-то способом сделать все-таки множество или перечисление, чтобы использовать их в качестве индексов массива?

Комментарии
18.01.2009 в 20:44

ningyo?.
хм.. может просто сделать массив из индексов? >.< Или я не понял суть проблемы..
19.01.2009 в 00:51

душа моя, я с тебя шизею
Представь стандартный пример есть светофор и у него три цвета. Чтобы было нагляднее делают так:
Type ColorSvetofor = (Green, Yellow, Red);

Эти значения цветов используется как индексы в массиве. Но у меня во время выполнения программы порядок этих цветов меняется, то есть например становится таким (Yellow, Red, Green). Только вот перечислимые типы менять нельзя.
Есть ли в Дельфи возможность все-таки задавать подобные изменения и при этом чтобы эти переменные относились к определенному типу данных для наглядности?
21.01.2009 в 08:46

I can fly. I do. Honestly.
попробуй использовать метод case, ща может и пример подыщу(если, конечно, я все правильно понял)

nt month = 3;
switch (month) {
case 1: System.out.println("January"); break;
case 2: System.out.println("February"); break;
case 3: System.out.println("March"); break;
case 4: System.out.println("April"); break;
case 5: System.out.println("May"); break;
case 6: System.out.println("June"); break;
case 7: System.out.println("July"); break;
case 8: System.out.println("August"); break;
case 9: System.out.println("September"); break;
case 10: System.out.println("October"); break;
case 11: System.out.println("November"); break;
case 12: System.out.println("December"); break;
default: System.out.println("That's not a valid month number."); break;
}


или еще вот так, смотря, подо что:

int month = 3;
switch (month) {
case 2:
case 3:
case 9: System.out.println("My family has someone with a birthday in this month."); break;
case 1:
case 4:
case 5:
case 6:
case 7:
case 8:
case 10:
case 11:
case 12: System.out.println("Nobody in my family has a birthday in this month."); break;
default: System.out.println("That's not a valid month number."); break;
}