Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для Savant

Старожил


Сообщения: 300
Благодарности: 6

Профиль | Сайт | Отправить PM | Цитировать


DillerInc
Не совсем понятно, как "каждая константа выбора" может содержать "определённый кусок кода" ))). Да к тому же в общем случае процессорное время будет все равно уходить (но меньше), т.к. программа будет последовательно (хотя и это зависит от компилятора, где-то могут для поиска (при большом кол-ве вариантов) использоваться другие алгоритмы) сравнивать значения, пока не найдёт подходящее.

Но если Ваша мысля дошла, то есть два (в принципе одинаковых) решения:
1) внешние операторы if преобразовать к виду
Код: Выделить весь код
if dEvent.dwDebugEventCode = LOAD_DLL_DEBUG_EVENT then begin
  < .. >
end else
if dEvent.dwDebugEventCode = EXCEPTION_DEBUG_EVENT then begin
  < .. >
end;
2) использовать case .. of .. end
Код: Выделить весь код
case dEvent.dwDebugEventCode of
  LOAD_DLL_DEBUG_EVENT:
    begin
      < .. >
    end;
  EXCEPTION_DEBUG_EVENT:
    begin
      < .. >
    end;
end;
Справка: конструкция begin .. end; (блок) являет собой один оператор, вне зависимости от того, сколько операторов в ней находится и находится ли вообще хоть один.

Отправлено: 20:56, 18-08-2005 | #48