-
Похожий контент
-
От Malstream
Недавно решил написать небольшое приложение под андроид, которое будет в удобном виде показывать расписание моего ВУЗа (они нам передают 20 летний привет в виде экселя), ну и задно изучить FMX.
Написал за пару дней парсер, все более менее работает. Встал вопрос - какими компонентами все это удобно и красиво отобразить? Перечитал кучу инфы по стандартным компонентам и, кажется, они мне не подойдут
Для того чтобы было понятно, чего именно я хочу - набросал схему. Границы для наглядности.
Каким компонентом это можно реализовать? Если все-таки коробочные тоже годятся, то ткните лицом куда читать :)
Заранее спасибо.
-
От genakust
Здравствуйте,
я создал свой ListBoxItem (FMX) который выглядит следующим образом:
затем я добавил Items динамически в ListBox и получилось следующее:
Когда я запускаю программу на Windows 10 и выбираю мышкой Item он селектируется, а если запускаю на Андроид- таблете, то я не могу выбрать (селектировать) Item.
Подскажите пожалуйста, какие могут быть причины длы такого поведения.
Заранее спасибо.
-
От Barbanel
Всем хай.
Пол дня бьюсь, уже с ума начинаю сходить, и как назло не с кем посоветоваться сегодня. Выручайте)
Суть:
Есть TListBox. В него динамически из кода создаются TListBoxItem.
Каждому итему в поле TagObject присваивается некий объект, хранящий дополнительные данные.
По клику на итем, вытаскивается этот объект и в зависимости от данных, выполняются разные действия.
Проблема:
Под Windows ее собсно нет)
Под Android при клике на TListBoxItem оказывается что TagObject = nil.
Голова уже дымится, у меня закончились мысли, что это может быть...
Код, на всякий:
while not query.Eof do begin item := TListBoxItem.Create(lbTeilLeistungsArten); lbTeilLeistungsArten.AddObject(item); item.StyleLookup := 'listboxitemTL'; item.Height := 60; item.Text := query.FieldByName('Bezeichnung').AsString; item.OnClick := OnTeilleistungenClick; item.Tag := query.FieldByName('ID').AsInteger; item.DisableDisappear := true; item.ApplyStyleLookup(); lStObj := TStoreObject.CreateTL(query.FieldByName('ID').AsInteger); lStObj.TeilLeistung.Name := query.FieldByName('Bezeichnung').AsString; item.TagObject := lStObj; query.Next(); end; Всем заранее спасибо!
-
От Вячеслав
Добрый день, форумчане! Столкнулся со следующей задачей:
Имеется TListBox с 32 итемами, задаются в DesignTime. В некоторых ситуациях требуется убрать половину, оставить только первые 16 итемов. Я делаю лишние невидимыми, но при этом область прокрутки листбокса остается прежней и излишне большой. В связи с этим вопрос: можно ли как-то ограничить область прокрутки?
XE7, Windows.
-
От Morfi
Столкнулся с такой проблемой:
Есть форма с TComboBox. Стиль форме (один из тех, который поставляется из коробки) задаю в run-time:
procedure TFormEditorRoomAttribute.FormCreate(Sender: TObject); begin inherited; self.StyleBook := uAccommodationInventory.ReferenceAccommodationInventoryForm.StyleBook; end; Необходимо, чтобы TComboBox отображал items c bitmap. Заполняю TComboBox.ListBox так же в run-time (TListBoxItem.StyleLookup := 'listboxitemleftdetail'):
var I: integer; FListBoxItem: TListBoxItem; begin //cbPicture: TCombobox; Self.cbPicture.BeginUpdate; Self.FRoomAttributePictures := ConnectionModule.DSServerModuleAccommodationClient.GetRoomAttributePictures; for I := 0 to Self.FRoomAttributePictures.Count - 1 do begin FListBoxItem := TListBoxItem.Create(Self.cbPicture); FListBoxItem.TagObject:= Self.FRoomAttributePictures[i]; FListBoxItem.ItemData.Text := Self.FRoomAttributePictures[i].ID.ToString; FListBoxItem.ItemData.Bitmap := Self.FRoomAttributePictures[i].GetBitmap; FListBoxItem.StyleLookup := 'listboxitemleftdetail'; Self.cbPicture.AddObject(FListBoxItem); end; Self.cbPicture.EndUpdate; end; TComboBox.DropDownKind выставляю в "Custom".
Вроде как всё готово. Но получается вот такая картина.
Создаю и отображаю форму, bitmap в TCombobox отображен:
Раскрываю список, bitmaps так же отображаются:
Но, как только выбираю один из items, происходит следующее:
выбранный item не отображается, вообще!
Долго ли, мало ли копался в исходниках TCombobox...
В общем нашел некоторое решение данной проблемы. На событие TComboBox.OnClosePopup повесил код:
begin //cbPicture: TCombobox; self.cbPicture.Selected.NeedStyleLookup; self.cbPicture.NeedStyleLookup; self.ApplyStyleLookup; end; Результат, выбранный item отображается в TCombobox:
Теперь вопрос: Так и должно отрабатывать? Или что-то делаю не так?! Если что-то делаю не так, то как надо делать?
-
От x11
Можно ли во время работы программы вызвать Items editor, который я вызываю во время дизайна приложения?
Или свой лисапет создавать?
-
От x11
Процедура добавления Item
procedure TfmEditObject.AddPhoto(Image: TBitmap); Var item: TListBoxItem; imageV: TImageViewer; begin item := TListBoxItem.Create(lbPhotos); item.parent := lbPhotos; item.text := ''; item.Width := lbPhotos.Width; item.PopupMenu := PopupMenu1; imageV := TImageViewer.Create(lbPhotos); imageV.HitTest := False; imageV.Parent := item; imageV.Align := TAlignLayout.Client; imageV.Bitmap.Assign(image); item.SetFocus; end; У popupmenu есть 2 пункта, привязанных к Action.
Gestures срабатывает на "long tap"
procedure TfmEditObject.lbPhotosGesture(Sender: TObject; const EventInfo: TGestureEventInfo; var Handled: Boolean); var c: IControl; ListBox: TListBox; lbxPoint: TPointF; ListBoxItem: TListBoxItem; begin if EventInfo.GestureID = igiLongTap then if (sender is TListBox) and assigned(TListBox(sender).Selected) then begin c := ObjectAtPoint(EventInfo.Location); if Assigned(c) then if Assigned(c.GetObject) then if c.GetObject is TListBox then begin ListBox := TListBox(c.GetObject); lbxPoint := ListBox.AbsoluteToLocal(EventInfo.Location); ListBoxItem := ListBox.ItemByPoint(lbxPoint.X, lbxPoint.Y); if Assigned(ListBoxItem) then PopupMenu1.Popup(lbxPoint.X, lbxPoint.Y); Handled := True; end; end; end;
Ставил точку останова, видно, что до строки "PopupMenu1.Popup(lbxPoint.X, lbxPoint.Y);" доходит.
Если программа работает на Windows, то меню отображается по правой кнопке мышки, а на андроид устройстве меню не отображается по Long Tap.
Как видно из кода, то меню прикручивается к ListBoxItem, а непосредственно к TListBox меню прикрутил в дизайне.
-
От x11
Хочу реализовать прокрутку фото с помощью TListBox.
Пока что в дизайне добавил пару Item и кинул на них TImageViewer, ну и картинку туда вставил.
В свойстве TListStyle указал Horizontal. На Windows не листается мышкой влево/вправо, но есть хотя бы полоса прокрутки внизу.
На андроид-устройстве и не листается, и полосы прокрутки нет вообще.
Это связано с этим вопросом http://fire-monkey.ru/topic/4301-выводотображение-нескольких-картинок-на-форме
-
От x11
В свойстве TListBox.ListStyle установил значение Horizontal. Список поменял вид.
Теперь ставлю Vertical, но ничего не происходит.
Как вернуть стиль списка обратно к вертикальному?
-
От Morfi
Ребята, как правильно настроить или реализовать поиск в TCombobox (данные которого связаны через livebinding c БД) при помощи TSearchBox?
-
-
Последние посетители 0 пользователей онлайн
Ни одного зарегистрированного пользователя не просматривает данную страницу