Перейти к содержанию
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. Добрый день! Установил 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 не сбрасывается. как эту ошибку исправить?
  2. Всем привет! После долгого творческого запоя я запилил альфу либы, которая позволяет юзать обычный, не-генномодифицированный ListView. Данные подаются в виде модели данных, описание раскладки итема лежит в JSON. Для работы пишется примитивный наследник класса-адаптера, который биндит данные модели на элементы из JSON. Я решил, что руками делать это дешевле чем через RTTI { TMyAdapter } procedure TMyAdapter.SetupDrawableContent(const ADrawable: TListItemDrawable; const AData: TMyData); begin if SameText( ADrawable.Name, 'text') then begin (ADrawable as TListItemText).Text := AData.Text; end else if SameText( ADrawable.Name, 'detail') then begin (ADrawable as TListItemText).Text := AData.Detail; end else if SameText( ADrawable.Name, 'balance') then begin (ADrawable as TListItemText).Text := FormatFloat('0.00', AData.Balance); end else if SameText( ADrawable.Name, 'reserved') then begin (ADrawable as TListItemText).Text := FormatFloat('0.00', AData.Reserved); end end; Главная хитрость и отличие от стандартного DynamicAppearance+LiveBinding - переменная высота итемов ListView и использование арифметики в описании раскладки. Можно указать Detail.Y = Text.Bottom + 5, ItemHeight = Detail.Bottom + 10, Detail.W = ItemWidth/2 - X {"Kind":"rect","Name":"BonusRect","Value":"", "Place":{"X":"itemwidth*3/4","Y":"Text.Y","W":"ItemWidth/4-5","H":"50"}, "BorderColor":"#FF005500", "Color":"lime", "LineWidth":3}, {"TextHAlign":2,"TextVAlign":1,"Kind":"text","Name":"Balance","Value":"", "Place":{"X":"BonusRect.x+5","Y":"Text.Y","W":"BonusRect.w-10","H":"50"}, "WordWrap":true, "Color" :"Black", "Font":{"Size":18,"Style":""}} ], "ItemHeight":"detail.bottom+10", Это дает довольно гибкую систему. Не на все случаи жизни, но все, что нужно, можно после автоматической раскладки дополнительно приписать в OnUpdateObjects Код для работы примерно такой procedure TForm1.FormCreate(Sender: TObject); begin data:= TMyDataList.CreateFromFile(ExePath()+'data.json'); // загрузка в модель данных Adapter := TMyAdapter.Create(lvWallets, data.Items, ExePath()+'pattern.json'); // создание адаптера и загрузка шаблона Adapter.Pattern.SetupListView(lvWallets); // задать отступы и разную мелочь Adapter.ResetView(); // здесь в цикле из модели данных создается нужное количество итемов ListView end; procedure TForm1.lvWalletsUpdatingObjects(const Sender: TObject; const AItem: TListViewItem; var AHandled: Boolean); begin Adapter.SetupContent(AItem); // загрузить текст, картинки и другое содержимое в элементы итема Adapter.Pattern.DoLayout(AItem); // поправить раскладку в соответствии с содержимым элементов итема end; Для использования кроме стандартных - текст, картинка, кнопка - создано несколько дополнительных элементов итема - прямоугольник, круг, уголок, линия. Отличие от ModernLV - , 1) все происходит без правки системных файлов 2) пока нет колонок и других особых изысков. На результат работы смотреть тут. Исходники пока не причесаны, будут чуть позже UPD. ссылки на репозитории ниже
  3. x11

    ListView - DynamicAppearance - header

    Не понять, ни в справке найти, ни примеров, как получить текст из header. Как получить текст из какого-то элемента, есть пример: lvContacts.Items[li.Index].Objects.FindObjectT<TListItemText>('textTel').Text; а для заголовка ил подвала не нахожу примеров
  4. Dmitry Stolyarov

    Выбор ImageIndex в ListView

    Добрый день, подскажите, пжл, новичку... Есть ListView и ImageList с двумя картинками. В ListView Item добавлен Image. ListView заполняю из БД и пытаюсь вывести картинку в зависимости от значения поля БД, но в независимости от значения БД выводится одна и та же картинка.. Такое нельзя провернуть? procedure TForm6.ListViewNAMEUpdateObjects(const Sender: TObject; const AItem: TListViewItem); var IItem:TListItemImage; begin IItem:= aItem.Objects.FindDrawable('Image4') as TListItemImage; if (IItem<>nil) then with FDQuery1 do begin First; while not Eof do begin if FDQuery1FK_PRICE.AsInteger = 1 then begin IItem.ImageIndex:=1 end else begin IItem.OwnsBitmap := True; IItem.ImageIndex:=0; end; Next; end; end; end;
  5. Добрый день. Как под FMX в ListView сделать подчеркивание Detail в рантайме? Пытался делать так: LV.ItemAppearanceObjects.ItemObjects.Detail.Font.Style := [TFontStyle.fsUnderline] но не срабатывает. P.S. Возможно это применить не ко всем строкам, а только к некоторым?
  6. Заполняю ListView в рантайме: LiveBindings не подходит, поэтому есть вопрос: а как задать фиксированный заголовок - чтобы в списке все Items, начинающиеся с буквы А были как бы объединены под одним заголовком А? Который в свою очередь смещался бы только заголовком Б (с Items, которые на букву Б) и так далее. Пример:
  7. Не могу понять, как записать текст в Footer text
  8. Если у элементов, идущих подряд одинаковый текст, то текст скрывается. Как это это отключить?
  9. Sati

    Видимость AccessoryObject

    Летом 2016 вопрос отображения объектов в ListView при создании Items уже обсуждался. Хочу ещё раз обсудить этот вопрос. А именно: Простой код ListViewItem := ListView.Items.Add; ListViewItem.Objects.AccessoryObject.Visible := false; (или true, не важно) вторая строка не работает если до выполнения, ListView ни одного раза не отображался. Если же отображался хотя бы один раз - всё нормально. В предыдущих обсуждениях Krapotkin рекомендовал Resize и OnUpdateObjects. Если нет идей проще, то, конечно, воспользуюсь.
  10. Всем привет! Встретился с одной проблемой. Удаляю Item у ListView по нажатию кнопки, которая находится на ListViewItem procedure TfmAppointment.lvSelectedServicesButtonClick(const Sender: TObject; const AItem: TListItem; const AObject: TListItemSimpleControl); begin lvSelectedServices.BeginUpdate; if lvSelectedServices.ItemCount > 0 then lvSelectedServices.Items.Delete(AItem.Index); lvSelectedServices.EndUpdate; end; итем удаляется, но потом выскакивает ошибка Access violation at address 60BCB318 и то се бо се у ListView ItemAppearance выставлен на DynamicAppearance помимо родного объекта Text добавил еще один объект Text и кнопку но фишка в чем, если убрать дополнительный объект Text с ListWiewItem и удалить итем то ошибка не выскакивает) что за прикол?
  11. Доброго дня, форумчане Возникла проблема с тем, чтобы поменять местами два итема в ListView. ListView.Items не имеет метода Exchange, сами итемы не имеют метода Assign чтобы можно было один итем клонировать в другой / удалить / вставить У кого какие мысли? Как реализовать? Delphi 10.2 Tokyo
  12. Rusland

    ListView в Берлине и в Токио

    Delphi Tokyo ListView->ItemAppearance->ItemAppearance=DynamicAppearance Есть ImageList c 3 картинками. Добавляю item-ы в ListView: procedure TForm1.Button1Click(Sender: TObject); var i:integer; Lvi: TListViewItem; begin LsvObjects.BeginUpdate; LsvObjects.Items.Clear; try for i:=0 to 100 do begin Lvi := LsvObjects.Items.Add; Lvi.Tag := i; Lvi.Data['ObjectText'] := 'ObjectText '+i.ToString; Lvi.Data['StateText'] := 'StateText '+i.ToString; Lvi.Data['ConnectText'] := 'ConnectText '+i.ToString; end; finally LsvObjects.EndUpdate; end; end; в UpdateObjects рандомно выбираю картинку: procedure TForm1.LsvObjectsUpdateObjects(const Sender: TObject; const AItem: TListViewItem); var ... oConnectImage: TListItemImage; r: integer; begin r:=Random(ImageList1.Count); oConnectImage:=aItem.Objects.FindDrawable('ConnectImage') as TListItemImage; if (oConnectImage<>nil) then oConnectImage.ImageIndex:=r; ... end; В Windows все нормально. А вот что я вижу на планшетах: На Dexp: На Lenovo: Картинки могут появиться, а могут и нет. Как исправить ситуацию? Вот сам проект. Про Berlin добавлю вопрос позже.
  13. Загружаю большой список в ListView, время загрузки где то 5-7 секунд. Это много, по этому переделал что бы список загружался динамически, как к концу пролистывается, подгружаются новые данные. Все бы хорошо, но вот ScrollBar при загрузке новых данных меняет размер и позицию. Это не очень нравиться Можно как то заранее настроить его размер под конечное число итемов? Или может как то по другому сделать.
  14. x11

    ItemAppearance Button click

    Добавил TTextButtonObjectAppearance. А как выполнить click/tap? Предполагается, что будет 2-3 кнопки с разными процедурами. На форме лежит TActionList и нужно к кнопками привязать действия, но у кнопки нет Action. Даже событий нет Вопрос в догонку. А в
  15. Добрый день. Хочу принудительно останавливать прокрутку TListView, если его сильно "крутанули". Как это можно реализовать? Пробовал с помощью listview1.StopPropertyAnimation('listview1.ScrollViewPos'), но не работает.
  16. randydom

    ListView Item.Height

    i'm trying to accomplish a kind of ListView Items hide mechanism by setting ListView.Item[x].Height:=0 , But that didn't give any result Adding Items : procedure TForm6.AddItemsClick(Sender: TObject); var I:Integer; AItem: TListViewItem; begin for I := 0 to 5 do Begin AItem := ListView1.Items.Add; //with AItem do // Text := 'Text'; End; end; Trying to hide Items : procedure TForm6.HideItemsClick(Sender: TObject); var I:Integer; begin ListView1.BeginUpdate; try for I := 0 to ListView1.ItemCount-1 do // ListView1.Items.Item[I].Height:=0; // doesn't give any result ListView1.Items.Item[I].Height:=1; finally ListView1.EndUpdate; end; end; The Result : Any help to fix this please ? or why ListView1.Items.Item.Height:=0; Has no effect ?
  17. walexw

    listView программный клик

    Проект на Delphi, Seattle Добавляю в таблицу новую запись, в моем варианте она становится первой в запросе. Обновляю listView который ее отображает. Мне надо, чтобы после этого программно отработала процедура клика по этой новой записи. Пишу: listView.Selected.Index := 0; Далее саму процедуру, но не понимаю, что подставить в скобки: listViewItemClickEx(const Sender: TObject; ItemIndex: Integer; const [Ref] LocalClickPos: TPointF; const ItemObject: TListItemDrawable); Подскажите plz.
  18. Как можно сделать алфавитный скроллинг подобно этому? Если список очень большой, то прокрутка происходит очень долго. Есть какие-нибудь идеи?
  19. Есть ли способ в FM узнать количество видимых Items у TListView?
  20. rakhmet

    Иконки в ListView

    Заполняю в рантайме ListView: procedure TAddForm.ConnectClick(Sender: TObject); var LI: TListViewItem; begin with Query do begin Open; while not Eof do begin LI := ListView1.Items.Add; LI.Text := Query.FieldByName('Type').AsString; LI.Detail := Query.FieldByName('Cargo').AsString + #13#10 + Query.FieldByName('Weight').AsString; Next; end; end; end; Как видно, Detail разбивается и заполняется в две строки (оказалось, что так удобнее смотреть). Но на обеих строках сухие цифры: Поэтому хотелось бы в начало обеих строчек вставить свои иконки, чтобы в конечном итоге выглядело как-то так: Есть идеи, как это можно сделать? А то товарищ kramler в другой теме писал, что не видит масла стоя перед открытым холодильником - так вот я сейчас уже в таком состоянии, что начинаю забывать, где мой собственный холодильник стоит, не говоря уже о масле в нём И смешно, и грустно...
  21. Delphi xe7, SQLite под ANDROID Соединяю таблицу БД с компонентом ListView через Bind Visually, все нормально, показывает записи. Пытаюсь удалить запись с помощью стандартного удаления записи (с помощью DeleteButton). Запись из ListView удаляется. С этим проблем нет. Пытаюсь теперь удалить эту запись из базы данных. На событие OnDeleteItem пытаюсь поймать значение первичного ключа (ID) для этой таблицы, чтобы скриптом типа delete from dairy where id=:id удалить запись. На показ кнопки delete исчезает выделенная строка, т.е. ListView.Selected=nil. Значение первичного ключа ID не соответствует текущей записи в этот момент. Получается, scroll автоматом не срабатывает, выделенной записи нет. Как узнать ID записи, по которой нажали кнопку Delete, чтобы ее (запись) удалить из БД?
  22. rustam_d

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

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

    ListView получить текст Item

    Добрый день. Столкнулся с такой проблемой, есть приложение которое делает парсинг сайта и собирает нужные ссылки в ListBox а из ListBox-а потом ссылку открывает браузер, с ListBox-ом проблем не было (за исключением скорости работы) делал так: procedure TForm16.ListBox1Click(Sender: TObject); begin WebBrowser1.URL:=listbox1.Selected.Text; end; решил вместо ListBox использовать ListView собираю данные в ListView но не знаю как передать браузеру(
  24. Amigo86

    ListView TGlyphButtonObjectAppearance

    Всем привет, я новенький, осваиваюсь, начал совсем недавно изучать FMX. После многочисленного поиска так и не решил проблему. В ListView при DynamicAppearance создал TGlyphButtonObjectAppearance. Так вот, суть проблемы, не могу понять как загрузить в GlyphButton картинку О_О. with ListView.Items.Add do begin ImageIndex := 0; Data['ProductNameText']:='Имя продукта'; Data['ProductDescriptionText']:='Описание продукта't; Data['ProductPriceText']:=FloatToStr(PriceProduct)+' цена продукта.'; Data['ProductImage']:= I; //Изображение Картинки с ImageList
  25. Пришла беда от куда не ждали, поигравшись с listbox понял что для больших данных он как то лагает решил перейти на listview и о чудо быстродействие и всё такое, но вот когда я хочу очистить его с помощью ListView1.Items.Clear; то получаю данную ошибку,как то можно избежать данной проблемы или нужно переходить на более новую версию сейчас на 10 seatle работаю.
×
×
  • Создать...