Программирование для Android и работа с датчиками в среде Delphi 11 - страница 15

Шрифт
Интервал


bytes:= TEncoding.UTF8.GetBytes (str);

str:= TEncoding.UTF8.GetString (bytes);

TEncoding.ANSI.GetString (Byte);//String из Byte


СтрокиJava. Для обращения к Java напрямую используют модуль Uses Androidapi. Helpers. Так можно преобразовывать строки:

function JStringToString (const JStr: TJString): String;

function StringToJString (const Str: String): JString;

То же для StrToJCharSequence и StrToJURI.


Дата и Время. Имеется значительное число возможностей работы с датой, но обычно достаточно узнать настоящую дату DateToStr (Now): и текущее время: TimeToStr (Now) и DateTimeToStr (Now).

Форматы представления даты:

dd/mm/yy hh: mm: ss = 09/02/49 01:02:03 mmm = Feb

mmmm = February ddd = Tue

dddd = Tuesday ddddd = 09/02/2049

dddddd = 09 February 2049 hhampm = 01AM

t = 01:02

tt = 01:02:03

dd/mm/yyyy = 09/02/2049

dd/mm/yy hh: mm: ss = 09-02-49 01_02_03 mmm = FEB

mmmm = FEBRUARY ddd = WED

dddd = WEDNESDAY

ddddd = 09-FEB-49

dddddd = WEDNESDAY 09 of FEBRUARY of 1949

hhampm = 01morning t = 01_02_03

tt = 01 _ 02 _ 03. 004

dd/mm/yyyy = 09-02-1949


Для отсчета времени в Delphi 10—12 имеется такой же компонент, как и ранее: Timer, запускающийся при присвоении функции Timer. Enable:= true и выключаемый …false; имеет единственное действие, повторяемое через задаваемый промежуток времени (в мСек). Однако, кроме малой точности (50 мСек) при достаточно нагруженной программе он действует крайне медленно, так что практически часто мало пригоден (хотя вне Android работает вполне точно и хорошо). Для получения времени между 2-мя событиями удобнее использовать функции даты-времени:

var // На Кнопку Start

str, h, m, s: String; t1:Integer;

begin

str:= DateTimeToStr (Now); // Начальное время

h:= Copy (str,, 2);// Отсекаем Дату и сразу берем Часы

m:= Copy (str, 15, 2);

s:= Copy (str, 18, 2);

t1:= StrToInt (h) *3600 + StrToInt (m) *60+ StrToInt (s);

Edit1.Text:= IntToStr (t1); //Текущее время в сек

end;


var // На Кнопку Stop

str, h, m, s: String; t, t1, t2:Integer; begin

str:= DateTimeToStr (Now); // Конечное время h:= Copy (str,12,2);

m:= Copy (str,15,2);

s:= Copy (str,18,2);

t2:= StrToInt (h) *3600 + StrToInt (m) *60+ StrToInt (s); t1:= StrToInt (Edit1.text);

t:= t2 – t1;

Edit3.Text:= IntToStr (t); // Итоговое прошедшее время

end;


Можно также использовать функцию разбора времени:

var

Hour, Min, Sec, Msec: Word;