Название | Программирование для Android и работа с датчиками в среде Delphi 11 |
---|---|
Автор произведения | Виталий Иванович Донцов |
Жанр | |
Серия | |
Издательство | |
Год выпуска | 0 |
isbn | 9785006566965 |
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;
begin
DecodeTime (Now, Hour, Min, Sec, Msec);
Edit1.Text:= IntToStr (Hour) +IntToStr (Min) +IntToStr (Sec) + IntToStr (Msec);
end;
в мСек:= Hour*60*60*1000 + Min*60*1000 + Sec*1000 + Msec;
TGUID
GUID (Globally Unique Identifier) в Delphi является8-битным идентификатором и используется для уникальной идентификации объектов или компонентов приложения. Обычно представляется в формате шестнадцатеричного числа из 32 цифр, разделенных дефисами. В Windows редактор библиотеки типов автоматически генерирует GUID для новых интерфейсов; также можно сгенерировать GUID, нажав CTRL + SHIFT + G. Пример с GUID:
var
MyGuid1: TGUID;
begin
// Создание нового GUID из строки текста
MyGuid1:= StringToGUID (» {00020400-0000-0000-C000—000000000046}»);
//Отображение в Memo заданного GUID
Memo1.Lines.Add («Заданный GUID: ' + GUIDToString (MyGuid0));
end;
Пример создания Массива (на 2 элемента):
const
MyGuid1 =» {99BDAB12-B1B6—41B0—9BF1—2C1DB3D8EC70}»;
MyGuid2 =» {8C7CD303—8D81—469B-99ED-E1F163E9036F}»;
const
MyArray: