Як зробити - touch-sortable - список - TListView - Fire Monkey від А до Я

Відповідь від tag , 15 травня, 2014

monkey

tag 1

  • Новачок
  • зробити
  • Користувачі
  • 1
  • 2 повідомлення

І для веб-інтерфейсів та для мобільних вже стали звичними списки, порядок рядків яких можна змінювати перетягуванням мишею (на робочий стіл) або пальцем (на мобільних). Як це завдання вирішується на FM для TListView чи TListBox?

Поділитись повідомленням

Посилання на повідомлення
Поділитись на інші сайти

2 відповіді на це питання

Створити обліковий запис

Зареєструйте новий обліковий запис у нашій спільноті. Це дуже просто!

Схожий контент

fire

Питання із серії "чогось дивного хочеться". Припустимо, я хочу написати власний ListView. Якщо я успадкую від TListView, то все нормально. Я його реєструю за допомогою процедури Register Приблизно так: procedure Register; begin RegisterComponents(' ', [TМойListView]); end; І все працює. Але, як показує практика, у тому числі приклад Равіля Заріпова (https://github.com/rzaripov1990/ModernListView) для того, щоб написати повноцінний ListView, успадковуватися треба від предків TListView, чи не від TStyledControl. Далі виникає питання. Де і як правильно реєструвати новостворений компонент? Якщо зареєструвати компонент за допомогою процедури Register, при розміщенні компонента на формі у вікні Structure до новоствореного компонента не прив'язується ItemAppearence.

Так і IDE падає. Додаю файл із кастомним ListView. Зроблений за аналогією з оригінальним, змінено лише назви.

touch-sortable

За порадою krapotkin`a http://fire-monkey.ru/topic/4595-listview-приховує-повторюваний-текст-заголовків/?do=findComment&comment=29209

Закинув LiveBinding під час заповнення TListView і почав заповнювати ручками. Майже все добре за винятком завантаження картинки з бази. При використанні LiveBinding картинка вантажилася, а тепер просто порожнеча. На Windows картинки вантажаться і відображаються, а на Андроїді не хочуть.

Ось частина коду завантаження Var stream: TBlobStream; . begin. lv.BeginUpdate; try lv.Items.Clear; qObjects2.close; qObjects2.Open; while not qObjects2.Eof do begin item := lv.Items.Add; item.Data[sItemId] := qObjects2id.AsString; item.Data[sItemPrice] := qObjects2price.AsString; item.Data[sItemType] := qObjects2type_name.Value; . . . ListItemImage := Item.Objects.FindObjectT (sItemImg); stream := TBlobStream.Create(qObjects2img, bmRead); try if stream.Size ('img'); if Assigned(ListItemImage) не буде визначено(ListItemImage.Bitmap) then ListItemImage.ImageIndex := 0; end; end; Але тепер у всіх ListItemImage відображається пустушка, навіть там, де має бути правильна картинка. Пробував використовувати подію UpdatingObjects, але в цьому випадку вантажиться правильна картинка, а пустушка не вантажиться.

1. Чому кнопка знаходиться під час роботи програми не так, як я її розташував у дизайні? 2. Як прив'язати кнопку до правого краю? Якщо встановити "Trailing" як Align, то кнопка взагалі зникає.

Останні відвідувачі 0 користувачів онлайн

Жодного зареєстрованого користувача не переглядає цієї сторінки