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

Лидеры

  1. mab

    mab

    Пользователи


    • Баллы

      2

    • Постов

      5


  2. DirtyBorov

    DirtyBorov

    Пользователи


    • Баллы

      1

    • Постов

      71


  3. #WAMACO

    #WAMACO

    Пользователи


    • Баллы

      1

    • Постов

      776


  4. qz5

    qz5

    Пользователи


    • Баллы

      1

    • Постов

      151


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

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

  1. Доброго времени суток, коллеги. Столкнулся с проблемой неотрисовки итемов в ListView при выставлении свойства TFDQuery.FetchOptions.Mode := fmManual. Данные с TListView (и TGrid) связаны посредством LiveBindings. На скрине видно, что данные в принципе загружены в датасет и даже отображаются в TGrid, но не в Listview. Может кто сталкивался? Варианты пробовал разные, бьюсь 3-й день, но увы( До решения в общем додумался (но вышеуказанный способ не выходит из головы))): отлавливать событие, что список прокручен до упора и увеличивать свойство FetchOptions.RecsMax (при FetchOptions.Mode := скажем fmAll). Для чего нужно: открывать без задержек таблицы с большим количеством записей, не загружая их в датасет сразу все. fmOnDemand необходимого эффекта не дал - все равно загружаются все записи сразу. Хотя здесь (http://docwiki.embarcadero.com/Libraries/XE8/en/FireDAC.Stan.Option.TFDFetchOptions.Mode) о свойстве с этим значением написано обратное. PS. Delphi XE7 (XE8), БД SQLite. Проект в прицепе. 33333.zip
    1 балл
  2. Короче нашел способ, чтобы добавлялись Item при LiveBinding! Потратил кучу времени. Вот так: FDQuery1.FetchNext; LinkFillControlToField1.Active := False; LinkFillControlToField1.Active := true; Но есть тогда другая проблема - ListView прокручивается на самый верх при добавлении новых строк. Решил это вот так: procedure TForm1.ListView1ScrollViewChange(Sender: TObject); var ItemHeight, p: single; begin p := ListView1.ScrollViewPos; ItemHeight := ListView1.ItemAppearance.ItemHeight; if ListView1.ScrollViewPos + ListView1.Height > ItemHeight * 0.8 * ListView1.ItemCount then begin FDQuery1.FetchNext; LinkFillControlToField1.Active := False; LinkFillControlToField1.Active := true; ListView1.ScrollViewPos := p; end; end; В принципе работает, надо только добавить условия, что все данные показаны и т.п., но наверное не буду я всё равно делать на биндингах. Хочу всё переделать назад на ручное добавление элементов. Подумаю как лучше будет работать.
    1 балл
  3. С ListView - нет. Уже и не помню зачем мне это было нужно) Решил задачу другим способом.
    1 балл
  4. Что? Опять? Сериал. Новый сезон. "Убийство кнопок" :))
    1 балл
  5. Похоже FireDAC плохо дружит с LiveBinding. Я тоже напоролся на проблему - не обновляются данные. Есть 3 три таблицы, связанных внешними ключами через Master/Detail, по цепочке 1>2>3. Если перейти по записям в первой таблице - во второй данные обновятся, а в третьей - нет. Обновляются только если нет связанных данных. Самое интересное то, что точно такой же проект, с теме же таблицами на VCL отлично работает. Из чего складывается вывод - косячит биндинг. Точнее TBindSourceDB.
    1 балл
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...