Лазарус – Case of – простые возможности

 


Лазарус  (Lazarus) – это отличное решение для всех ценителей Делфи (Delphi) и Паскаль (Pascal) подобного программирования. Но для уже Виндоус (Windows) ориентированных решений. Паскаль подобное это значит, например,  Фри Паскаль (Free Pascal),  Турбо Паскаль (turbo Pascal). И это продолжение про оператор выбора. Удобное и часто используемое решение. Для перебора значений. Как его еще можно использовать. Это начальный уровень. По простому.

Вот когда сам это дело изучал. Я увидел на сайте посвященному Lazarus интересное решение. Это перебор текстовых значений. Тип данных – это строка (String). И мы можем прямо их перебирать. Это очень удобно! А еще чтобы не заморачиваться с верхним и нижним регистром. Можно предварительно строку по которой идет выбор перевести в нижний регистр. Чтобы все буквы там были маленькие. И проверять по значениям, написанными маленькими буквами.

Как вот отличная иллюстрация. Это – выбор операционной системы. И вывод результата в элемент Мемо (Memo).

 

Os:='Windows';

 case LowerCase(Os) of

 'dos': Memo1.Append('dos operating  system is selected!');

 'windows': Memo1.Append('windows operating  system is selected!');

 'mac os':  Memo1.Append('mac os operating  system is selected!');

 'unix':    Memo1.Append('unix operating  system is selected!');

 else

 Memo1.Append('unknown operating system is selected!');

 end;

 

Очень хорошо, что оператор выбора. Работает и с перечислениями. Перечисления удобны как константы. Заранее подобранные значения. Список возможных значений. Как сезоны года. Есть осень, зима, весна и лето. Или медаль. Бронзовая, серебряная и золотая. Удобно сделать оператор выбора.

 

type

   EMedal=(Gold, Silver, Bronze);

 

 MyMedal:= EMedal.Bronze;

 case MyMedal of

 Silver: Memo1.Append('You got SILVER medal!');

 Bronze: Memo1.Append('You got BRONZE medal!');

 Gold:   Memo1.Append('You got GOLD medal!');

 else   Memo1.Append('You got NO MEDAL at all!');

 end;

 

 


Еще интересно что оператор выбора может работать и с 16-ричными числами.  Это хитрые такие числа. Где идет счет не 0-9. А 0-15. Где потом после  0-9 идут буквы латинские – A B C D E F. Чтобы дополнить буквами счет до 15. И пишутся через символ $.

 

A:=$A;

 case A of

 $0: Memo1.Append('Hex 0');

 $1..$5: Memo1.Append('Hex [1..5]');

 $6: Memo1.Append('Hex is 6');

 $7: Memo1.Append('Hex is 7');

 $8..$9: Memo1.Append('Hex is [8..19]');

 $A..$F: Memo1.Append('Hex is [A..F]');

 else Memo1.Append('Hex out of range [0..F]');

 end;

 

 

И напоследок. Это комбинация разных типов условий. В строку, в виде диапазона. И так тоже можно писать. Очень гибко все сделано. Можно написать простое условие в одну строку. Или расписать на несколько строк. Можно написать много разного выбора. Например диапазон и конкретные значения прямо в одной строке выбора. И конечно ветка иначе (else). Ты можешь туда писать begin end для порядка. Но это не обязательно. Можно просто else и куча кода который идет в этой ветке.

 

A:=15;

 case A of

 1..10,14,15,16:  Memo1.Append('[1-10],14,15,16!');

 21..30: Memo1.Append('[21-30]!');

 else

 Memo1.Append('Out of range [1-30]!');

 Memo1.Append('your A is' + IntToStr(A));

 end;


 

Оператор выбора очень полезный. И много чего умеет. Можно много чего выбирать! И писать самые разные условия. Вот как раз сам изучал. Что там можно писать. Исследовал некоторые возможности. Чтобы и самому активно это применять в коде.



Дима Линк делает ретро видеоигры, приложения, немного музыку, пишет истории, и еще некоторое ретро.


ВЕБСАЙТ: http://www.dimalink.tv-games.ru/home_rus.html

БЛОГЕР: https://dimalinkrus.blogspot.com/

МАСТОДОН: https://mastodon.social/@DimaLinkRus

Комментарии