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

Виталий Донцов – Delphi: реальности программирования для смартфонов (страница 4)

18

Memo.CopyToClipBorad

Перевод каретки: string1 + #13#10 + string2 (перевод каретки и конец строки с переносом string2 на другую строку).

Изменение типов проводится очень часто, обычно для передачи строкового значения в числовое и наоборот, используют: StrToInt; InToStr; StrToFloat (str); для форматирования: FloatToStrF (n, ffGeneral или ffFixed, count знаков всего, count знаков после зпт). Вместо Float используют Double.

Дата и Время. Имеется значительное число возможностей работы с датой, но обычно достаточно узнать настоящую дату DateToStr (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.3 имеется такой же компонент, как и ранее: Timer, запускающийся при присвоении функции Timer. Enable:= true и выключаемый присвоением …false; имеет единственное действие, повторяемое через задаваемый промежуток времени (в мСек). Однако, кроме малой точности (50 мСек) при достаточно нагруженной программе он действует крайне медленно, может тормозить в 2 раза и несколько секунд включаться, так что практически мало пригоден (хотя вне Android работает вполне точно и хорошо). Для получения времени между 2-мя событиями в Delphi 10.3 удобнее всего использовать функции даты-времени:

Разница 2-х времен в Сек:

// На Кнопку Start var str, h, m, s: String; t1:Integer; begin str:= DateTimeToStr (Now); // Начальное время h:= Copy (str, 12, 2);// Отсекаем Дату и сразу берем значение Часы m:= Copy (str, 15, 2); s:= Copy (str, 18, 2); t1:= StrToInt (h) *3600 + StrToInt (m) *60+ StrToInt (s); //Текущее время в сек Edit1.Tex:= IntToStr (t1); end; // На Кнопку Stop var 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;

5. Вкладки компонентов

Базовые компоненты находятся на вкладке Standard, вкладка Additional используется значительно меньше, так как ее элементы практически дублируют вкладку Standart; из вкладки System можно использовать компонент Timer (с отмеченными ограничениями), вкладка Win 32 исчезла.

Компонент Таблица представлен во вкладке Grids двумя таблицами – обычной строковой StringGrid и Grid в котором можно использовать самые разные типы данных и вставлять другие компоненты, также отдельный компонент Заглавие – Header.