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

Читать онлайн.
Название Программирование для Android и работа с датчиками в среде Delphi 11
Автор произведения Виталий Иванович Донцов
Жанр
Серия
Издательство
Год выпуска 0
isbn 9785006566965



Скачать книгу

(«Новая Строка»); //Строка в конец списка

      ListBox1.Items.Insert (i, «Новая_Строка»); // Добавление строки перед строкой с номером i

      ListBox1.Text – все данные списка;

      Индекс строки: i:= ListBox3.ItemIndex;

      Получить текст выделенной строки:

      str:= ListBox1.Items[ListBox1.ItemIndex];

      Доступ к элементу списка:

      ListItems [Index] или ItemByIndex (Index);

      или with ListBox1 do s:= Items [ItemIndex];

      Выделить все: SelectAll; Снять выделение: ClearSelaction;

      Поменять местами элементы: Excange [Item1, Item2];

      Удаление строки: ListBox1.Items.Delete (i);

      Сортировка списка: ListBox1.Sorted:= True;

      Поставить в соответствие строкам Списка ячейки Таблицы:

      with ListBox1, StringGrid1 do Cells [i, j]:= Items [ItemIndex];

      Прокрутить список (выбранная строка вверху):

      ListBox1.ScrollToItem(ListBox1.ItemByIndex (n);

      Рис. 21. Заполнение строчек ListBox (2 колонки).

      Свойство Events: OnClick – основное для работы с компонентом, при этом на первое касание строки она выделяется (серым), на второе – выполняется запрограммированное действие.

      Загрузить компонент данными можно и таким образом:

      for i:= 0 to ADevices.Count-1 do

      begin

      Item:= TListBoxItem.Create (ListBox1);

      Item.StyleLookup:= ’listboxitembottomdetail’;

      Item. ItemData. Text:= ADevices[i].DeviceName;

      Item. ItemData.Detail:= ADevices[i].Address;

      ListBox1.AddObject (Item);

      end;

      Здесь также видна возможность редактирования стиля списка:

      Item.StyleLookup:= ’listboxitembottomdetail’;

      Позволяет загружать список из строки и уменьшенной подстроки:

      Item. ItemData. Text:= ADevices[i].DeviceName;

      Item. ItemData.Detail:= ADevices[i].Address;

      Свойство Bitmap позволяет ассоциировать с элементом картинку.

      Полная очистка списка осуществляется методом Clear, обновление:

      var

      ListBoxGroupHeader: TListBoxGroupHeader;

      begin

      ListBox1.BeginUpdate;

      ListBox1.Clear;

      ListBoxGroupHeader:= TListBoxGroupHeader.Create (ListBox1);

      ListBoxGroupHeader. Text:=«Files for Sending.»;

      ListBox1.AddObject (ListBoxGroupHeader);

      ListBox1.EndUpdate;

      end;

      Можно индивидуально формировать строки списка, в том числе ширину и высоту строк (Общие свойства в Object Inspector – ItemWith и ItemHeight будут отображать нули).

      Компонент часто используют для ввода списка, например, файлов:

      var

      n: Integer;

      s, sd: String;

      ListBoxGroupHeader: TListBoxGroupHeader;

      begin

      //Очищаем Memo и ListBox

      Memo1.Lines.Clear;

      ListBox1.BeginUpdate;

      ListBox1.Clear;

      ListBoxGroupHeader:= TListBoxGroupHeader.Create (ListBox1);

      ListBoxGroupHeader. Text:=«Files List.»;

      ListBox1.AddObject (ListBoxGroupHeader);

      ListBox1.EndUpdate;

      //Ищем и вносим в ListBox1 все *.txt файлы из downlowd

      n:=0;

      sd:= '/storage/emulated/0/Download’;

      for s in TDirectory.GetFiles (sd, «*.txt’) do

      begin

      n:=n+1;

      ListBox1.Items.Add (Copy (s, Length (sd) +2,100));

      listbox1.ListItems[n].StyledSettings:= listbox1.ListItems [n]. StyledSettings – [TStyledSetting. Family, TStyledSetting.Size]; //Формат

      listbox1.ListItems[n].Font. Family:=«Tahoma’;

      listbox1.ListItems[n].Font.Size:= 14;

      end;

      if n = 0 then

      ShowMessage («Нет *.txt файлов в Download!»)

      else

      ShowMessage («Обнаружено ‘ + IntToStr (n) + «файлов).

      Использован вариант перечисления: for s in, а путь к директории объявлен прямо: '/storage/emulated/0/Download’, что возможно при объявлении разрешений на чтение файлов из внешних источников; перед открытием файлов ListBox обновляется, это нужно делать внутри методов:

      ListBox1.BeginUpdate;

      *****************

      ListBox1.EndUpdate;