Перейти к содержанию
  1. Brovin Yaroslav

    Brovin Yaroslav

  • Похожий контент

    • От 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 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...