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

Поиск сообщества

Показаны результаты для тегов 'listview'.

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

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

Тип контента


Форумы

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

Поиск результатов в...

Поиск контента, содержащего...


Дата создания

  • Начало

    Конец


Дата обновления

  • Начало

    Конец


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

Регистрация

  • Начало

    Конец


Группа


AIM


MSN


Сайт


ICQ


Yahoo


Jabber


Skype


StackOverflow


Защита от ботов


Город


Интересы

  1. Возникла задача поиска (фильтрации) в ListView по нескольким критериям. К примеру нужно искать по Item.Text, Item.Detail и Item.Date['Category']. Пошел путем, ранее подсказанным на этом форуме - правкой "function TListViewItems.ApplyFilter: Boolean" в FMX.ListView.pas. Передавать строку поиска хотел в строке типа "Text=Пеньки&Detail=по три рубля&Category=Осиновые", но быстро понял что код превращается в одноразовую кашу, а хотелось сделать красиво и на будущее. Сделал так - добавил еще один тип "TFilterPredicateEx = TPredicate<TListViewItem>;", к существующему "TFilterPredicate = TPredicate<string>;" в TListViewItems. Ну и далее по списку добавил аналоги к переменным, функциям и property. Смысл в том чтобы вместо обычного бутылочного горлышка в фильтации: ListView.Items.Filter:= function(X: string): Boolean begin Result := AFilterText.IsEmpty or X.ToLower.Contains(AFilterText.ToLower); end; иметь мощный инструмент с доступом ко всем плюшкам TListViewItem. Теперь это выглядит вот так: type TListViewFilterEx = record Category : String; Name : String; end; ... Var AFilter : TListViewFilterEx; // это для удобства хранения фильтров в одном месте ... AFilter.Category:='Береза'; AFilter.Name:='Пеньки'; AListView.Items.FilterEx:= function(X: TListViewItem): Boolean begin Result:= (AFilter.Category.IsEmpty or X.Data['Category'].AsString.ToLower.Contains(AFilter.Category.ToLower)) And ((AFilter.Name.IsEmpty or X.Text.ToLower.Contains(AFilter.Name.ToLower)) or (AFilter.Name.IsEmpty or X.Detail.ToLower.Contains(AFilter.Name.ToLower))); end; Подозреваю что все это можно было сделать с помощью хелперов, но до их освоения руки никак не дойдут. Если кто то сделает хелпер, дабы не править FMX.ListView.pas, буду очень благодарен. Внимание! FMX.ListView.pas от Delphi XE8, к другим версиям думаю не подойдет. Прилагаю дополненный FMX.ListView.pas к сообщению. FMX.ListViewWithFilterEx.zip
  2. DimArt

    Не отображается TListItemImage

    Всем привет! Добавляю в listViewItem дополнительный TListItemImage,а он ни в какую не отображается. Точнее картинка появляется на долю секунды и тут же пропадает. Картинки подгружаю с нета, для этого использую хелпер от ZuBy. Подскажите, в чём я накосячил. Файл проекта для Seattle приложил. TwoImages.zip
  3. Как получить доступ к отфильтрованным элементам ListView. Ситуация такая - ListView частично сформирован и показан пользователю, он может начать поиск через SearchBox, но потоки должны продолжать заполнение некоторых данных, не критичных для работы. Но дело в том, что получить доступ по индексу, к отфильтрованному итему нельзя, а нужно. Что делать? Может есть другой путь получить нужный ListViewItem?
  4. Доброе утро. Могу ли я как-то изменить цвет текста у ListView Item (Только у одного), у остальных такой, который указан в дизайнере.
  5. ivadimos

    Scroll

    Хочу написать итем пикер на основе скроллбокса(листобокса, тут не суть важна), выглядеть он должен так, обычный скролл, но в области видимости только 5 элементов. 3й элемент(цетральный) как бы выделен(на его уровне вне листбокса лежит прямоугольник, который его типа подсвечивает). В чём проблема. всё работает красиво, но хотелось бы, что бы при окончании скроллинга происходило приближение к элементу, чья позиция ближе всего к позиции, которую подсвечивает прямоугольник.
  6. Rusland

    Цвет выделенного Item-а

    Раскрашиваю ListView в черный цвет, цвет текста серый. Делаю это с помощью изменений от Zuby в FMX.ListView.pas в процедуре DrawItemsFill // отрисовываем кастомный цвет........................................... // procedure TListViewBase.DrawItemsFill(const StartItem................. if TListViewItem(ListItem).Data['aUseCustomColor'].AsBoolean then FBrush.Color := TListViewItem(ListItem).Data['aCustomColor'].AsInteger; // ...................................................................... При выделении Item его цвет становится светло-серым. Как изменить цвет выделяемого itema на черный? Могу изменить цвет текстовых элементов в выделенном item так: procedure TFrmMain.LsvItemClick(const Sender: TObject; const AItem: TListViewItem); var i: integer; begin TListItemText(AItem.Objects.FindDrawable('TxtNum')).SelectedTextColor:=$FF1E1E1E; // серый TListItemText(AItem.Objects.FindDrawable('TxtAdr')).SelectedTextColor:=$FF1E1E1E; // серый end; А как изменить backround выделенного элемента так и не разберусь Если это делается стилем, то покажите пожалуйста пример.
  7. Доброго времени суток такая проблема в берлине со списком ListView есть основное текстовое поле на скрине указано стрелкой мне нужно сделать отступ с правой стороны в редакторе нет свойств pending и margin при смене размера нужно пересчитывать новую ширину
  8. Rusland

    Смена Image в ListView

    В проекте 2 Image, 2 Button, 1 ListView. Вид ListView: Пытаюсь менять картинку в Item. Делаю это следующим образом: for k := 0 to LsvAl.ItemCount-1 do begin if (k mod 2)=0 then begin TListItemImage(LsvAl.Items[k].Objects.FindDrawable('Imp1')).Bitmap.Assign(Image2.Bitmap); // <- иногда зависает на Android TListItemText(LsvAl.Items[k].Objects.FindDrawable('TxtNum')).TextColor:=$FFFF2346; end else begin TListItemImage(LsvAl.Items[k].Objects.FindDrawable('Imp1')).Bitmap.Assign(Image1.Bitmap); TListItemText(LsvAl.Items[k].Objects.FindDrawable('TxtNum')).TextColor:=$FF009DFE; end end; Во-первых, часто, но не всегда, на Андройде ловлю Segmentation fault (при обращении к памяти). Во-вторых, раскрашивается всё, вплоть до самого Image1 из которого я беру картинку (отчего я вообще в шоке ). Как делать правильно? До: После: PS. Прикладываю готовый проект LsvAl.zip
  9. Вот я указал ItemAppearance = DynamicAppearance Добавил 3 текста и один Image (имя Image2). Тексты присваиваю так: Item :=LsvAlarms.Items.Add; Item.Data['Text1']:='Текст1'; Item.Data['Text4']:='Текст4'; Item.Data['Text3']:='Текст3'; Как в рантайме добавить картинку в Image2? Изначально у меня к ListView был прикреплен ImageList и я просто указывал Item.ImageIndex:=0 - а как поступать теперь? Куда присваивать bitmap?
  10. Rusland

    Редактор ListView

    Можно ли в RadStudio 10.1 Berlin через редактор ListView добавлять дополнительные объекты? Например, мне нужно добавить дополнительную картинку. Можно ли это сделать?
  11. произошло событие pullRefresh. но в какую сторону? для уменьшения трафика у меня в API введена паджинация, поэтому мне нужно определить, предыдущую или следующую страницу нужно вытягивать из базы ?
  12. dmitry

    Работа с ListView

    Добрый день. Использую Delphi DX 10 Update 1. Есть маленькая задача по использованию компонента ListView. Необходимо, если в Item содержится текст = 'Signal', то цвет у шрифта установить в красный, иначе в черный. Написал следующий код вставки данных в ListView: procedure TForm3.Button1Click(Sender: TObject); Var Item: TListViewItem; TextObject: TListItemText; begin Item := ListView1.Items.Add; Item.Text := '...'; TextObject := TListItemText.Create(Item); TextObject.Text := 'Signal'; TextObject.Height := 30; TextObject.PlaceOffset.Point := TPointF.Create(1, 0); TextObject.Name := 'STATUS'; TextObject.Font.Size := 20; Item := ListView1.Items.Add; Item.Text := '...'; TextObject := TListItemText.Create(Item); TextObject.Text := 'Normal'; TextObject.Height := 30; TextObject.PlaceOffset.Point := TPointF.Create(1, 0); TextObject.Name := 'STATUS'; TextObject.Font.Size := 20; end; В событии UpdateObjects компонента написал: procedure TForm3.ListView1UpdateObjects(const Sender: TObject; const AItem: TListViewItem); Var TextObject: TListItemText; begin TextObject := AItem.Objects.FindDrawable('STATUS') As TListItemText; If TextObject <> Nil Then Begin If TextObject.Text = 'Signal' Then TextObject.TextColor := TAlphaColorRec.Red Else TextObject.TextColor := TAlphaColorRec.Black; End; end; В итоге Item, где есть Signal не устанавливается цвет текста в красный и более того TextObject = Nil. Помогите разобраться с проблемой. Тестовый проект прилагаю LVBag.rar
  13. Привет Всем! Как принято в современных приложениях, догружать контент(обычно это картинки) при скролинге. я взял картинки пользователей этого форума Seattle LVdynamicLoadBitmap.zip Berlin LVdynamicLoadBitmap(Berlin).zip
  14. Как можно сделать алфавитный скроллинг подобно этому? Если список очень большой, то прокрутка происходит очень долго. Есть какие-нибудь идеи?
  15. Если обращаться к активному элементу в ListView по LongTap, то можно нарваться на Access Violation. Как этого добиться: Должен быть включен CanSwipeDelete. Делаем свайп, появляется кнопка Удалить. Теперь в любом месте делаем долгий тап на любом элементе и ловим AV. //на форме SpeedButton и ListView procedure TForm1.ListView1Gesture(Sender: TObject; const [Ref] EventInfo: TGestureEventInfo; var Handled: Boolean); begin if (EventInfo.GestureID=igiLongTap)or(EventInfo.GestureID=igiDoubleTap) then begin SpeedButton1.Text:=TListViewItem(ListView1.Selected).Text; end; end; procedure TForm1.SpeedButton1Click(Sender: TObject); var Item: TListViewItem; I:integer; begin ListViewPV.BeginUpdate; for I := 1 to 100 do // заполняем begin Item := ListViewPV.Items.Add; Item.ButtonText:= 'Button text'; Item.Text := 'Text '+IntToStr(I); Item.Detail := 'Detail '; Item.Accessory:=TAccessoryType.More; end; ListViewPV.EndUpdate; end; Приходится проверять что ListView1.Selected<>nil
  16. Добрый день интересует вопрос может кто сталкивался с подобной проблемой в FDMemTable1 есть большое количество записей примерно 2500-3000 как максимально быстро поместить все записи в ListView
  17. Привет Всем! Много тем на форуме про раскраску TListView, нашел в интернете решение и доработал его Вот что получилось LV_Helper.zip ColorListView.zip Доступно для Seattle ListView1.SetColorItemSelected(TAlphaColorRec.Orangered); //выделенный ListView1.SetColorItemFill(TAlphaColorRec.Gray); // обычный цвет Item ListView1.SetColorItemFillAlt(TAlphaColorRec.Lightgrey); // альтернативный цвет Item ListView1.SetColorBackground(TAlphaColorRec.Black); // цвет самого TListView ListView1.SetColorItemSeparator(TAlphaColorRec.Lightgray); // Линия разделения Item'ов ListView1.SetColorText(TAlphaColorRec.Red); // Обычный текст ListView1.SetColorTextSelected(TAlphaColorRec.White); // выделенный текст ListView1.SetColorTextDetail(TAlphaColorRec.Yellow); // текст доп. инфы ListView1.SetColorTextHeader(TAlphaColorRec.Green); // текст заголовка ListView1.SetColorTextHeaderShadow(TAlphaColorRec.Lightgray); // тень текста ListView1.SetColorButtonText(TAlphaColorRec.Orange); // цвет текста кнопки ListView1.SetColorButtonTextPressed(TAlphaColorRec.Orangered); // цвет нажатой кнопки добавлено в Berlin ListView1.SetColorPullRefresh(TAlphaColorRec.Orange); ListView1.SetColorPullRefreshIndicator(TAlphaColorRec.Orangered); ListView1.SetColorStretchGlow(TAlphaColorRec.Lime); ModernListView.rar
  18. Интересует: 1. Как сделать ListView с 3-мя и более колонок (разных типов) в зависимости от ширины экрана 2. Заполнение ListView вручную из DataSet 3. Идея и пример реализации возможности сортировки по колонкам ListView (кто, как делает) 4. Идея и пример фильтрации ListView по колонкам (пример, с точки зрения удобства для пользователя, не замограждения экрана и т.д.)
  19. rustam_d

    Listview - где хранить ID ?

    В дизайнере установил связку BindSource датасета на поля Listview: - Item.Text, - Item.Detail, - Item.ImageIndex - Item.ButtonText все эти поля нужные и визуально отражаемые. Вопрос где хранить ID, чтобы по OnItemClick вызвать датасет.Locate('id', ...); Думал можно через ItemHeader.Text, а его извлечение мягко говоря непрямое...
  20. daemon.init

    ListViewItem Transpatent, как?

    XE7 У самого ListView есть свойство Transpatent у Item'ов не нашёл. Думал чз ListView.Items.Item[0].Objects.TextObject.Opacity но видно не то что нужно. Это да для текста. Потом открыл FMX.ListView в нём есть процедура procedure TCustomListView.DrawItemsFill ... в ней при отрисовке на Canvas заменил цвет FBrush.Color на цвет плюс альфа канал например $30FFFFFF работает или цвет или альфа в чёрный цвет, прозрачности нет. Если есть у компонента прозрачность, то как у итемов включить?
  21. Dozent

    Пример работы с ListView

    Не могу найти пример работы с ListView, мне нужно сделать групировку, добавить картинку слева ну с этим вроде должен разобраться и ещё мне нужно на каждый итем добавить Lable
  22. Добрый день! Установил XE8, открыл проект собранный на XE7 начались проблемы со стилями (если использовать один стиль на всех формах), это пол беды. пришлось стиль новый для каждой формы ставить... а ошибка что в названии появилась откуда не ждал, есть TListView, заполняется динамически 1-зачение добавляем ListView1.ClearItems; with ListView1.Items.Add do begin Text := 'KCell'; Bitmap.LoadFromFile(TPath.Combine(TPath.GetDocumentsPath, 'kcell.png')); Tag := 3; end; with ListView1.Items.Add do begin Text := 'Activ'; Bitmap.LoadFromFile(TPath.Combine(TPath.GetDocumentsPath, 'activ.png')); Tag := 391; end; with ListView1.Items.Add do begin Text := 'Tele2'; Bitmap.LoadFromFile(TPath.Combine(TPath.GetDocumentsPath, 'tele2.png')); Tag := 125; end; with ListView1.Items.Add do begin Text := 'Pathword'; Bitmap.LoadFromFile(TPath.Combine(TPath.GetDocumentsPath, 'pathword.png')); Tag := 73; end; with ListView1.Items.Add do begin Text := 'Beeline'; Bitmap.LoadFromFile(TPath.Combine(TPath.GetDocumentsPath, 'beeline.png')); Tag := 90; end; with ListView1.Items.Add do begin Text := 'ДОС'; Bitmap.LoadFromFile(TPath.Combine(TPath.GetDocumentsPath, 'beeline-dos.png')); Tag := 578; end; with ListView1.Items.Add do begin Text := 'Dalacom'; Bitmap.LoadFromFile(TPath.Combine(TPath.GetDocumentsPath, 'dalacom.png')); Tag := 12; end; with ListView1.Items.Add do begin Text := 'City'; Bitmap.LoadFromFile(TPath.Combine(TPath.GetDocumentsPath, 'city.png')); Tag := 134; end; with ListView1.Items.Add do begin Text := 'ALTEL 4G'; Bitmap.LoadFromFile(TPath.Combine(TPath.GetDocumentsPath, 'altel4g.png')); Tag := 716; end; with ListView1.Items.Add do begin Text := 'АО "Казахтелеком"'; Bitmap.LoadFromFile(TPath.Combine(TPath.GetDocumentsPath, 'telecom.png')); Tag := 0; end; 2-значение ListView1.ClearItems; with ListView1.Items.Add do begin Text := 'ALTEL 4G'; Bitmap.LoadFromFile(TPath.Combine(TPath.GetDocumentsPath, 'altel4g.png')); Tag := 716; end; with ListView1.Items.Add do begin Text := 'JET'; Bitmap.LoadFromFile(TPath.Combine(TPath.GetDocumentsPath, 'jet.png')); Tag := 484; end; with ListView1.Items.Add do begin Text := '"Интернет Дома" от Beeline'; Bitmap.LoadFromFile(TPath.Combine(TPath.GetDocumentsPath, 'internetdoma.png')); Tag := 413; end; моделируем ситуацию если грузим 1 значение и тыкаем (выделяем) на последний или больший 2 itemindex затем выполняем 2 значение, то выскакивает argument out of range т.е. получается ItemIndex или Selected Item не сбрасывается. как эту ошибку исправить?
  23. Всем привет. Проблема в следующем. Взял компонент Listview и вывожу туда текст из базы и картинку из интернета. Listview Apperance поставил Custom. Всё хорошо, но вот только текст уплывает за картинку. Я взял и передвинул Place Offset в тексте по иксу на 75, то есть по ширине картинки. Теперь вроде бы всё хорошо. Но оказывается, что ровно эту же длину теперь съедает справа. То есть если поставить Wordwrap в положение true, то 75 пикселей текста остаётся как бы за формой. Проблему можно решить установив для текста длину, но тогда на планшете это будет выглядеть ужасно.
  24. Здравствуйте, каким образом можно отследить достижение конца списка в listview? Наверное, все пользовались приложениями социальных сетей, где список обновляется автоматически. (Пример: VK) Хочется сделать также и в Delphi XE7. В Java обрабатывается с помощью onOverScrolled
×
×
  • Создать...