Поиск по сайту

Результаты поиска по тегам 'TListView'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип публикаций


Категории и разделы

  • Общие вопросы
    • Анимация
    • Графика
    • Стили
    • Базы данных и REST
    • Компоненты
    • Положение, размеры, выравнивание
    • Работа с текстом
    • Приложение и формы
    • Отладка
    • Развертывание приложений
    • Вопросы по языку Object Pascal и RTL
    • Общая информация о TControl
    • События
    • Прочие вопросы
  • Вопросы по платформам
    • Android
    • iOS
    • OSX
    • Windows
    • Windows Phone
    • Linux
  • Вопросы по использованию RAD Studio
    • Лицензирование
    • Сборка проектов
    • Multi-Device Designer
    • Редактор кода
    • Вопросы
  • Обучение
    • Основная информация
    • Вопросы
    • Отзывы
  • Поиск специалистов по FireMonkey
    • Консультации
    • Ищу подрядчика
  • API интернет сервисов
    • ВКонтакте API
    • Google Maps API
    • Yandex деньги
  • Дополнительные ресурсы по FireMonkey
    • Сторонние компоненты
    • Приложения, написанные с использованием FireMonkey
    • Примеры
    • Руководства
    • Шаблоны
    • Статьи и заметки
    • Информация о версиях RAD Studio
    • Новости
  • Организация работы данного форума
    • Правила форума
    • Нарушения правил форума
    • Предложения об организации форума
    • Проблемы
    • Функции форума
  • Видеокурсы
    • Основная информация
    • Курсы
    • Предложения и голосования за новые курсы
    • Вопросы

Категории

  • Курсы



Фильтр по количеству...

Найдено 37 результатов

  1. Привет. Я к своему стыду так и не научился толком работать с TListView. TListBox это сделать просто, а вот как это сделать в TListView... Это сложный компонент. Подскажите как правильно реализовать. Нужно добавить с правой стороны каждого Item иконку избранное, которая работала бы как чекбокс - если нажать по ней то звездочка становится желтой и без заливки (Checked/unchecked) . Насколько я понял в GlyphButton нельзя добавить картинку.. Как же тогда это сделать? Спасибо.
  2. Ссылка: http://blog.rzaripov.kz/2016/12/3-modernlistview.html Автор: Зарипов Равиль @ZuBy Описание: Реализация динамической подгрузки контента: Бесконечный скроллинг (например как лента в ВК) Паджинация/Пагинация (постраничная загрузка)
  3. Господа и товарищи, помогите тупому мне! Столкнулся с странным. Под windows все отлично работает, а под android не могу добиться загрузки картинок. Мозг уже сломал. Собрал тестовый проект - в ListView (DynamicAppearance) добавляем 4 ListViewItem, в ListViewUpdatingObjects все создаем и грузим картинки из инета (потоки и прочее убрал для упрощения). Картанка слева, текст (URL) справа, проще некуда. Прилагаю к сообщению архив проекта и код. unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.ListView.Types, FMX.ListView.Appearances, FMX.ListView.Adapters.Base, FMX.ListView, System.Net.HTTPClient, FMX.Objects; type TFormMain = class(TForm) ListView: TListView; procedure ListViewUpdatingObjects(const Sender: TObject; const AItem: TListViewItem; var AHandled: Boolean); procedure FormShow(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } ListViewUpdate : Boolean; procedure MyListViewUpdateObjects(const AListView: TListView; const AItem: TListViewItem); procedure InitListView(AListView : TListView); function LoadImageFromURL(AURL : String) : TBitmap; end; var FormMain: TFormMain; implementation {$R *.fmx} procedure TFormMain.FormCreate(Sender: TObject); begin ListViewUpdate:=False; end; procedure TFormMain.FormShow(Sender: TObject); begin InitListView(ListView); end; procedure TFormMain.InitListView(AListView : TListView); Var AListViewItem : TListViewItem; AImageURL : String; begin AImageURL:='http://kayfolom.ru/images/test/'; ListViewUpdate:=True; AListViewItem:=AListView.Items.Add; AListViewItem.Data['ImageURL']:=AImageURL + 'logo.png'; ListViewUpdate:=False; AListViewItem.Adapter.ResetView(AListViewItem); ListViewUpdate:=True; AListViewItem:=AListView.Items.Add; AListViewItem.Data['ImageURL']:=AImageURL + '000487806d3a2ab98aeb2c47b810fc8b.jpg'; ListViewUpdate:=False; AListViewItem.Adapter.ResetView(AListViewItem); ListViewUpdate:=True; AListViewItem:=AListView.Items.Add; AListViewItem.Data['ImageURL']:=AImageURL + '0012ef6cb42e95268a4cd1d832a2b93a.jpg'; ListViewUpdate:=False; AListViewItem.Adapter.ResetView(AListViewItem); ListViewUpdate:=True; AListViewItem:=AListView.Items.Add; AListViewItem.Data['ImageURL']:=AImageURL + '0022454ccb4f81a701cb3a3c89d52d2f.jpg'; ListViewUpdate:=False; AListViewItem.Adapter.ResetView(AListViewItem); end; procedure TFormMain.ListViewUpdatingObjects(const Sender: TObject; const AItem: TListViewItem; var AHandled: Boolean); begin if Not ListViewUpdate then begin MyListViewUpdateObjects(Sender as TListView, AItem); AHandled:=True; end; end; procedure TFormMain.MyListViewUpdateObjects(const AListView: TListView; const AItem: TListViewItem); Var AName : TListItemText; AImage : TListItemImage; AvailableWidth, ImageWidth, ImageHeight : single; function SetupTextObject(const AName, AText : String; AFontSize : Single; AFontStyles : TFontStyles; AWidth, AHeight, X , Y : Single; AAlign, AVertAlign: TListItemAlign; ATextAlign, ATextVertAlign: TTextAlign) : TListItemText; begin Result:=TListItemText(AItem.View.FindDrawable(AName)); if Result=Nil then Result:=TListItemText.Create(AItem); Result.Name:=AName; Result.Width:=AWidth; Result.WordWrap:=True; Result.Font.Size:=AFontSize; Result.Font.Style:=Result.Font.Style + AFontStyles; Result.Trimming:=TTextTrimming.None; Result.Text:=AText; Result.PlaceOffset.X:=X; Result.PlaceOffset.Y:=Y; Result.Align:=AAlign; Result.VertAlign:=AVertAlign; Result.TextAlign:=ATextAlign; Result.TextVertAlign:=ATextVertAlign; Result.Height:=AHeight; end; function SetupImageObject(const AName : String; AWidth, AHeight, X , Y : Single; AAlign, AVertAlign: TListItemAlign) : TListItemImage; Var AImageURL : String; begin Result:=TListItemImage(AItem.View.FindDrawable(AName)); if Result=Nil then begin Result:=TListItemImage.Create(AItem); AImageURL:=AItem.Data['ImageURL'].AsString; Result.Bitmap:=LoadImageFromURL(AImageURL); end; Result.Name:=AName; Result.Width:=AWidth; Result.Height:=AHeight; Result.PlaceOffset.X:=X; Result.PlaceOffset.Y:=Y; Result.Align:=AAlign; Result.VertAlign:=AVertAlign; Result.ScalingMode:=TImageScalingMode.StretchWithAspect; end; begin AvailableWidth:=AListView.Width - AListView.ItemSpaces.Left - AListView.ItemSpaces.Right; // Изображение размещаем слева ImageWidth:=AvailableWidth / 3; ImageHeight:=AvailableWidth / 3; AImage:=SetupImageObject('Image', ImageWidth, ImageHeight, 0, 0, TListItemAlign.Leading, TListItemAlign.Leading); // Текст справа AName:=SetupTextObject('Name', AItem.Data['ImageURL'].AsString, 14, [], AvailableWidth - ImageWidth, ImageHeight, ImageWidth, 0, TListItemAlign.Leading, TListItemAlign.Leading, TTextAlign.Center, TTextAlign.Center); AItem.Height:=Round(ImageHeight + AListView.ItemSpaces.Top + AListView.ItemSpaces.Bottom); end; function TFormMain.LoadImageFromURL(AURL : String) : TBitmap; Var AHTTPClient : THTTPClient; AStream : TMemoryStream; HTTPResponse : IHTTPResponse; begin Result:=Nil; AHTTPClient:=THTTPClient.Create; AStream:=TMemoryStream.Create; try HTTPResponse:=AHTTPClient.Get(AURL, AStream); finally if HTTPResponse.StatusCode=200 then Result:=TBitmap.CreateFromStream(AStream); end; end; end. test092 ListView with Image.7z
  4. При расчете высоты TListItemText приходилось использовать костыль - указывать размер шрифта отличный от 12 (например 12.01 и т.д.), если эти пренебречь, то расчет высоты не работал и текст или резался или высота итема оказывалась гораздо больше текста. Проблема в том, что на стадиях расчета высоты, к TListItemText еще не применен стиль, и параметры шрифта не соответствуют тому как будет выглядеть окончательный вариант на экране. Для правильного расчета высоты нужно выдернуть шрифт из стиля, делается это вот так: Var AFontObject : TFontObject; AListItemText : TListItemText; ... AListItemText:=TListItemText(AItem.View.FindDrawable(AName)); if AListItemText=Nil then AListItemText:=TListItemText.Create(AItem); AFontObject:=(AListView.FindStyleResource('font') as TFontObject); if Assigned(AFontObject) then AListItemText.Font.Assign(AFontObject.Font); //Теперь вычисление высоты имеет смысл и не нужно задавать размер шрифта - он берется из стиля. AListItemText.Height:=CalculateHeight(AListItemText, AListView, FTextLayout); Или можно затолкать это действие в функцию вычисления высоты: function CalculateHeight(const AListItemText : TListItemText; const AListView : TListView; const FTextLayout : TTextLayout) : Single; Var AFontObject : TFontObject; begin FTextLayout.BeginUpdate; try FTextLayout.Text:=AListItemText.Text; FTextLayout.MaxSize:=TPointF.Create(AListItemText.Width, TTextLayout.MaxLayoutSize.Y); AFontObject:=(AListView.FindStyleResource('font') as TFontObject); if Assigned(AFontObject) then FTextLayout.Font.Assign(AFontObject.Font) else FTextLayout.Font.Assign(AListItemText.Font); FTextLayout.WordWrap:=AListItemText.WordWrap; FTextLayout.Trimming:=AListItemText.Trimming; FTextLayout.HorizontalAlign:=AListItemText.TextAlign; FTextLayout.VerticalAlign:=AListItemText.TextVertAlign; finally FTextLayout.EndUpdate; end; // Result:=FTextLayout.Height * 1.4; // Теперь этот костыль не нужен Result:=FTextLayout.Height; end; Внимание! Если вы заполняете еще невидимый на экране ListView, не забудьте выполнить ListView.ApplyStyleLookup перед добавлением Items, иначе не получите правильный размер шрифта из стиля.
  5. Меня это проблема преследует со времен VCL... Подскажите как же ее решить... FMX TListView - ItemAppearanceName = ImageListItem. Лежит fmx TimageList, в настройках указано 16x16 и прорачный цвет clNone, добавил одну иконку 16x16 с прозрачностью. Если запустить под Windows 10 все ок. Если запустить под Android то при выделении (selected) вместо прозрачности белый цвет. В результате иконка некрасиво обрамлена в белом квадрате.. Иконку делал в Axiallis IconWorkShop, сохранил как ico, Пробовал заливать белым вместо прозрачного, и затем ставить в TimageList белый как прозрачный - тоже самое... Что же делать...
  6. Добрый день. Подскажите, пожалуйста, как можно реализовать на Berlin для Андроида такую таблицу без StringGrid'а (динамически)?
  7. Извиняюсь за глупый вопрос. Если я использую LiveBinding, как обновить данные в ListView после апдейта? Для работы с данными использую UniDac. Апдейт вижу в профайлере. P.S. Вопрос почти снят..) Как правильнее? так MainForm.ListView1.BeginUpdate; MainForm.ListView1.EndUpdate; или так MainForm.BindSourceDB1.DataSet.Refresh;
  8. Добрый вечер, друзья! Кто в курсе, подскажите - возможен ли плавный скроллинг содержимого TListView при работе приложения под Windows? Если с мобильным вариантом все ОК, на "автомате" - т.е. плавный скроллинг там работает по умолчанию, то с работой под Windows что-то не понятно как это включить/реализовать. Например, чтобы сделать плавный скролл содержимого TListBox, достаточно написать TScrollBox(__listbox1___).AniCalculations.Animation := True; А есть ли что-то аналогичное для TListView? Заранее благодарен за ответы!
  9. Ссылка: http://blog.rzaripov.kz/2016/11/2-modernlistview.html Автор: Зарипов Равиль @ZuBy Описание: Как сделать режим мультивыделения в TListView
  10. Ссылка: http://blog.rzaripov.kz/2016/11/1-modernlistview.html Автор: Зарипов Равиль @ZuBy Описание: Чуть подробней о горизонтальном режиме
  11. Ссылка: http://blog.rzaripov.kz/2016/11/0-modernlistview.html Автор: Равиль Зарипов @ZuBy Описание: Знакомство с ModernListView
  12. Добрый день! Как отловить нажатие на картинку в компоненте TListView (режим - DynamicAppearance) и получить доступ (например вывести в виде сообщения) к тексту текущего Item'а? (Berlin upd 1) Test.rar
  13. Возможно ли в ListView сделать кнопку с текстом повернутым на 90 градусов, т.е. вертикальная надпись на кнопке? В стиле, в listviewstyle есть button (TStyleObject), у button есть RotationAngle, но установка в 90 никакого результата не дает. Может есть другой путь?
  14. Что то не могу догнать: загрузил в ImageList 2 картинки, а вот в ListView не получается их засунуть. var LItem: TListViewItem; если прописываю прямой путь к файлу на компе, то все работает
  15. Задача следующая: есть ListView настроенный в дизайнтайме, во время работы приложения необходимо создавать в runtime и использовать несколько копий ListView. В каждом будет свой контент. Не могу придумать элегантное решение. Первый вариант - тупо создавать в runtime и кучей кода настраивать ListView до нужного состояния. Но это лениво ;-) Второй вариант - оставить в приложении настроенный вручную ListView и клонировать его по мере надобности, как то так наверное ListViewDestination.Assign(ListViewSource) ? Третий вариант - сериализация настроек и загрузка их в новые экземпляры ListView. Заранее благодарю за совет.
  16. Давно не хватало TListView в горизонтальной ориентации, например чтобы сделать вот такую картинку zairkz сделал стиль с применением 9-patch png "технологии" С помощью жестов показано как сделать "сквозной скрол" как писал dreamix P.S. по компоненту TListViewHorz, не успел все протестить как следует со всеми параметрами не правильно будет отображаться Header'ы и Поиск, основной функционал сохранен UPDATE: LVStyledhorz.7z
  17. Здравствуйте. Можно ли у TListViewItem при добавлении его в TListView установить свойство Accessory в None? По-умолчанию, можно установить только More, Checkmark или Detail. У компонента TListView реализован механизм Swipe-to-Delete и это очень удобно при работе со списками. Но вот дополнительный контрол справа совсем не нужен. У TListBox можно поставить None, но у него нет Swipe-to-Delete. Спасибо.
  18. Обновление Списков (ListBox, ListView) как в популярных приложения Скачать с офф. сайта UpdateMe.zip
  19. Здравствуйте! С TListBox примеров полно в сети. Может кто-нибудь здесь прояснит ситуацию с TListView. Интересно заполнение программно стандартными средствами без сторонних компонент! Интересую маленькие фрагменты кода по формированию ListView, демонстрирующие работу: 1. Как программно добавить группировку? 2. Как добавить разделитель (separator) item (итемов)? 3. Как добавить кастомный итем, например, СЛЕВА картинка, сверху слева большой текст, снизу слева маленький красный цвет, справа, на уровне первого текста другой текст, прижатый к правому краю, посередине картинка и т.д.? 4. Как программно изменить цвет фона итема? 5. Как программно добавить в итем чекбокс слева, например, справа картинку и посередине кнопку кликабельную и т.д.? т.е. интересует некий FAQ по всевозможной работе с ListView. Типовые приемы программирования так сказать! Думаю всем будет полезно и нужно, т.к. ListView используется везде, практически для просмотра. Для TListBox я могу все это сделать, но он тормозной! Спасибо!
  20. Подскажите пожалуйста, почему свойство onChangeRepainted у ListView не работает на XE10? Надо изменить какое свойство, или это баг? PS. На XE5 нормально отрабатывало после прорисовки анимации нажатия на итем, а сейчас печаль.
  21. Подскажите как добраться до кнопки очистки содержимого TSearchBox? Сам TSearchBox у TListView благодаря теме "Можно ли программно передать фокус на SearchBox и очистить строку?" доступен без проблем, но кнопка не обнаруживается в ListViewProducts.SearchEdit.Children.Items :-( Хочу изменить логику ее появления - сделать видимой всегда, когда есть текст в ListViewProducts.SearchEdit.Text. По умолчанию ее поведение малость загадочное - она исчезание при любой возможности (потеря фокуса, Resize, смена ориентации и т.д.). Что бы очистить поле поиска, пользователю приходится в данный момент производить следующие манипуляции: Кликнуть на SearchBox Ввести любой символ Нажать на появившуюся "кнопку с крестиком" Пока написан костыль на все возможные манипуляции - добавляю пробел в конец SearchBox, удаляю добавленный пробел, но иногда он не срабатывает и вводит пользователя в ступор. Пытался решить проблему добавлением отдельной кнопки очистки, с нормальным поведением, но опять же встает вопрос как навсегда скрыть родную кнопку. Сейчас пытаюсь отказаться от встроенного в TListView TSearchBox, сделать отдельное поле ввода поиска, но с наскока не пойму как передавать строку фильтрации в TListView.
  22. Доброго времени суток, коллеги. Столкнулся с проблемой неотрисовки итемов в 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
  23. ListViewItem := ListView.Items.Add; Image.Parent := ListViewItem; возможно ли в принципе?
  24. И для веб-интерфейсов и для мобильных уже стали привычными списки, порядок строк которых можно менять перетаскиванием мышью (на десктоп) или пальцем (на мобильных). Как эта задача решается на FM для TListView или TListBox?