реклама
Бургер менюБургер меню

Виталий Донцов – Программирование для Android и работа с датчиками в среде Delphi 11 (страница 4)

18

Label – для надписей,

Edit – для ввода данных,

Button – для запуска операций над ними,

Memo – для вывода результатов.

Для Базы данных таких программ достаточны:

StringGrid – для накопления и отображения данных,

Chart и Sharp – для графиков.

Для работы с файлами достаточно компонента Memo, который имеет сам методы сохранения и загрузки содержимого (в него можно направить данные *.txt для файла или из файла).

Из всего комплекса свойств компонентов необходимыми и достаточными являются:

Text (Line для Memo) – для ввода названий и данных,

Align – для выравнивания на любом экране (выбрать Scale).

Из методов: математические функции для обработки данных,

Перевод число/строка (StrToFloat и FloatToStr);

Операторы цикла и условия для работы с данными:

If then..else,

For i = n1 to n2 do.

Таким образом, изучив за день буквально десяток компонентов с несколькими методами, можно создавать сложные прикладные программы. Примером этого является, например, созданная нами профессиональная программа «Тест Здоровья», позволяющая достаточно точно определить основные параметры физического здоровья и психической работоспособности.

Как украшения добавлены картинки эмблемы (ImageViewer) и картинки на кнопки (невизуальный компонент загрузки картинок ImageList и свойство ImageIndex для кнопок).

Программы – аналоги программ смартфона.

Это программы, имитирующие Проигрыватель звуковых файлов и Видео, работу с Микрофоном и Bluetooth, Интернет и пр.

Хотя можно добиться (путем достаточно сложного программирования) сходства с функционалом рабочих программ смартфона, однако, это совершенно непродуктивно, так как имеются собственные программы, написанные именно под данный смартфон. К тому же, для работы программ с внешними устройствами самого смартфона требуются разрешения, которые достаточно сложны и не всегда работают и не на всех смартфонах.

Базы данных.

Работам с Базами данных посвящено больше половины компонентов Delphi Android, в том числе специально разработанные класс Fire…, что делает этот раздел специальным направлением программирования. Однако, для Android он практически бесполезен (в отличие от обычного типа Delphi 7), так как круг задач и возможностей для Android узок, а для прикладных программ, как видно из рисунок выше, вполне хватает для создания внутренних Баз данных уже имеющихся компонентов и методов.

Рис. 16. Ввод данных в программу «Тест Здоровье».

Рис. 17. Вывод заключения программы «Тест Здоровье».

Рис. 18. «Тест Здоровье»: База данных и график с зонами нормы.

Специальные программы.

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

Эквалайзер – улучшение качества звука;

Осциллоскоп – для визуализации звука;

Пульсометр – для работы с видео-сигналом;

Осциллограф – для работы с внешними сигналами; и пр.

Кроме Пульсометра, который может быть создан стандартными средствами Delphi Android (как показано в отдельной главе, посвященной работе со звуком), для таких программ требуются дополнительные библиотеки (Bass. dll), освоение которых часто сложнее обычного Delphi, причем часто бибилотеки не встраиваются в те или иные версии Delphi Android. К тому же, существует достаточно много уже реализованных программ такого типа, обычно написанных на другом языке, так как, например, Пульсометр в Delphi Android 10 и 11 оказывается недостаточно быстр и позволяет получить 5—10 кадров в сек при требованиях для кардиоинтервалографии – 20.

Для работы с внешними сигналами необходимы внешние устройства, часто создаваемые самими, или распространенные микроконтроллеры типа Arduino со своим функционалом, программированием и программами. К тому же, Осциллограф на базе смартфона или компьютера ограничен возможностями его звуковой платы, тогда как существуют дешевые аппараты осциллографы для гораздо более высоких диапазонов, в том числе способные связываться со смартфоном для передачи данных.

6. ТИПЫ ДАННЫХ В DELPHI Android

Типы данных, как обычно, объявляются перед началом самым программы (до begin) используя инициацию var:

var

x,y:Integer;

m: Double;

str1:String; // Строковая переменная.

Mas: array [1..100] of String; // Массив одномерный из 100 строк, начало с 1

Ar: array [0..9] of array [0..9] integer; // Многомерный массив,

D: array of real; // Динамический массив

MyChar: Char; // Тип для хранения простого символа.

R: TRect; //Область, ограниченную R. Left,.Top,.Right,.Bottom;

Point: TPointF;.

Численные значения: Word, Integer, Single, Double, Real; учитывая, что точность составляет 5—6 знаков, обычно используют Integer для целочисленных и Double для чисел с запятой, которые могут быть представлены также в формате Е: 3.14E+2 = 3.14E+00 = 3.14; 23.5Е-2 = 0.235. Для округления числа «x» удобно использовать Round (x), округляющий до ближайшего целого (например, превратить Single в Integer); также можно использовать для выделения целой части Trunc (x) и дробной части Frac (x); Ceil (X) – до целого в большую сторону; Floor (X) – до целого в меньшую сторону;

Для ряда функций нужно добавить пакет math в User начала программы. Доступны многие математические функции, в том числе: абсолютное значение abs (х), квадрат sqr (x) и корень квадратный из х: sqrt (x); для степенной функции преобразование: xn = exp (n*ln (x); корень n-й степени из x = exp (1/n*ln (x), хотя имеется также и функция возведения XY: Power (x,y):

var

Z: Real;

begin

Z:= Power (0.25, 0.5); {Z:= 0.5}

end;

Функция получения вероятного числа: Random (n), по умолчанию пустые скобки () – вероятное число от 0 до 1; при «n» целочисленном – целочисленное значение от 0 до «n-1».

Символы представлены типом Char: Type: Char = #0..#255; Char:= «3». Код символа можно узнать по функции Chr (n). Код ANSI: #0…255, UNICODE: первые 256 символов = ANSI. Chr (66) = B; Char 67) = C.

var

myChar: Char;

begin

myChar:= «G»; // Назначение из символьной константы

ShowMessage («Символ G = ' + myChar); // Видим: «Символ G = G»

myChar:= #65; // Назначение из целочисленной константы

ShowMessage («#65 = ' + myChar); // Получаем «#65 = А»

end;

Присваивание значения требует двоеточия перед равенством: n:= 10; обычное равенство (=) используется в булевых значениях сравнения (true/false): if n = 10 then… Неравенство: X <> Y.

Массивы: важная часть программ для накопления данных.