Облака / Clouds
    Go to Copy.com
    Copy.com
    The bast cloud service
    Get 20 GB free!!!
    Support WebDav.
    Show more >>

    Go to Dropbox.com
    Dropbox.com
    time-tested cloud storage
    Support WebDav.
Все бесплатно
    Все ссылки на файлы, расположенные на страницах сайта, добавлены пользователями и доступны для бесплатного скачивания. За содержание этих файлов администрация сайта ответственности не несет.



Вопросы
  Вставить иконки в Grid
   Категория: Компоненты
  Удалить свой же exe-шник
   Категория: Приложение
  Группировка TopAdvGrid
   Категория: Компоненты
  Создание ярлыка на Рабочем столе
   Категория: Приложение
  Компоненты CoolBar и ControlBar
   Категория: Компоненты
  Как удалить не пустой каталог
   Категория: Файловая система
  Упаковать BD Accuracer
   Категория: Базы данных
  Создать индекс для таблицы ABS (Absolute Database)
   Категория: Базы данных
  Как в Memo прокрутить текст
   Категория: Компоненты
  Процедуры и функции для рабты с файлами
   Категория: Файловая система

Delphi - Справочник: Case

ABCDEFGHIJKLMNOPQRSTUVWXYZ

  << Вернуться  

 Case
1 case Ordinal expression of
Ordinal value {,Ordinal value...} : Statement;
{...}
else Statement;
end;

2 type Name = record
Declarations ...
case {Tag :} Ordinal type of
Ordinal value {,Ordinal value...} : (Declarations);
{...}
end;
Ключевое слово (Unit )
Механизм для действия в зависимости от различных значений Порядковых
Описание:
Ключевое слово Case обеспечивает структурированный эквивалент последовательности условных операторов той же самой переменной.

Оператор case более изящен, более эффективен, и его проще обслуживать чем множество вложений if.

Версия 2. Используется для объявлений Записей. Он обеспечивает средство отображения двух или больше отличающихся наборов объявлений на тот же самый раздел записи.

Он главным образом используется при обработке различных типов набора данных для записи, где наборы данных имеют то же самое содержание. См. пример для пояснения.

Tag обеспечивает идентификацию элемента case.
Пример кода: Стандартное использование оператора case

var colour : TPrimary; number : Integer; begin // Показ цвета до того как его иму будет назначенно значение ShowColour(colour); // Теперь устанавливаем цвет и пытаемся снова colour := Green; ShowColour(colour); // Вычисления также могут использоваться в операторе case number := 17; Case number mod 2 of 0 : ShowMessage(IntToStr(Number)+' mod 2 = 0'); 1 : ShowMessage(IntToStr(Number)+' mod 2 = 1'); else ShowMessage(IntToStr(Number)+' mod 2 неизвестно'); end; end; // Процедура для показа переданного цвета procedure TForm1.ShowColour(colour : TPrimary); begin // Использование оператора Case для того, чтобы увидеть цвет переданной переменной // Обратите внимание насколько важно предложение else, даже при том, что мы // охватили, очевидно, все значения TPrimary! Case colour of Red : ShowMessage('colour Красный'); Green : ShowMessage('colour Зеленый'); Blue : ShowMessage('colour Синий'); Yellow : ShowMessage('colour Желтый'); else ShowMessage('colour неизвестен!'); end; end; //*** //Пример кода : Case в записях type // Объявление записи fruit используя case для выбора // диаметра окружности fruit, или длины и ширины. TFruit = record name : string[20]; Case isRound : Boolean of // Выбор отображения следующего раздела True : (diameter : Single); // Отображение той же памяти как диаметр False : (length : Single; // Отображение той же памяти как длина и ширина width : Single); end; var apple, banana, fruit : TFruit; begin // Установка яблока как окружность, с соответствующими измерениями apple.name := 'Apple'; apple.isRound := True; apple.diameter := 3.2; // Установка банана как удлинённый, с соответствующими измерениями banana.name := 'Banana'; banana.isRound := False; banana.length := 7.65; banana.width := 1.3; // Показ атрибутов яблока fruit := apple; if fruit.isRound then ShowMessage('Диаметр '+fruit.name +' = '+ FloatToStrF(fruit.diameter, ffFixed, 2, 1)+'"') else ShowMessage('Длина '+fruit.name +' = '+ FloatToStrF(fruit.length, ffFixed, 2, 1)+'" ширина = '+ FloatToStrF(fruit.width, ffFixed, 2, 1)+'"'); // Показ атрибутов банана fruit := banana; if fruit.isRound then ShowMessage(fruit.name +' диметр = '+ FloatToStrF(fruit.diameter, ffFixed, 2, 1)+'"') else ShowMessage(fruit.name +' длина = '+ FloatToStrF(fruit.length, ffFixed, 2, 1)+'" ширина = '+ FloatToStrF(fruit.width, ffFixed, 2, 1)+'"'); end;

Результат:
Диаметр Apple = 3.2"
Длина Banana = 7.7" ширина = 1.3"

  << Вернуться