Перейти к содержанию
Fire Monkey от А до Я

Лидеры

Популярный контент

Показан контент с высокой репутацией 01.01.2018 во всех областях

  1. Если вы понаблюдаете дальше, то обнаружите что выполняется гораздо больше раз. Попробуйте к примеру повернуть устройство горизонтально, потом опять вертикально - еще пара выполнений. OnUpdateObjects и OnUpdatingObjects выполняется постоянно - при изменении размеров, скрытии и повторном показе, переключении приложений и т.д. В справке так и написано "Occurs immediately after the list view component is updated." Так что надо придерживаться двух правил : 1. При добавлении/изменении TListViewItem отключайте обработку вышеуказанных процедур. Setting.Flags.ListViewUpdating:=True; // Глобальная переменная или ListView.OnUpdatingObjects:=nil; AItem:=ListView.Items.Add; AItem.Data['Type']:='MySuperPuperItem'; AItem.Data['Name']:=AName; AItem.Data['Value']:=AValue; Setting.Flags.ListViewUpdating:=False; // Глобальная переменная или ListView.OnUpdatingObjects:=ListViewUpdatingObjects; AItem.Adapter.ResetView(AItem); // принудительно вызываем ListViewUpdatingObjects ... procedure TFormMain.ListViewUpdatingObjects(const Sender: TObject; const AItem: TListViewItem; var AHandled: Boolean); begin if Setting.Flags.ListViewUpdating then // Если используете глобальную переменную Exit; ... 2. Внутри OnUpdateObjects и OnUpdatingObjects при добавлении TListItemText и прочих элементов, проверяйте их существование, возможно они уже были добавлены вашим кодом ранее.
    1 балл
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...