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

Лидеры

  1. Равиль Зарипов (ZuBy)

    Равиль Зарипов (ZuBy)

    Модераторы


    • Баллы

      5

    • Постов

      2 517


  2. enatechno

    enatechno

    Пользователи


    • Баллы

      4

    • Постов

      181


  3. Andrey Efimov

    Andrey Efimov

    Модераторы


    • Баллы

      3

    • Постов

      842


  4. #WAMACO

    #WAMACO

    Пользователи


    • Баллы

      2

    • Постов

      776


Популярный контент

Показан контент с высокой репутацией 25.07.2017 во всех областях

  1. Тогда стандартные стили Вам не подойдут. Создавайте свой стиль для ListBoxItem на базе стандартного или "с нуля". Тут описано как это можно сделать. Вот подправил пример. Создал mylistboxitemstyle в котором только 2 элемента - text и image. Этот стиль загружен в StyleBook1 и указан в Listbox1.DefaultItemStyles.ItemStyle. Можете редактировать этот стиль прямо в StyleBook, добавляя новые элементы и располагая их как Вам нужно. tstListbox1.rar
    2 балла
  2. Не надо ничего удалять, мало ли кому нибудь пригодится...
    2 балла
  3. Anatoliy

    Телеграмм

    Ошибка найдена. Из манифеста пропала строка: <service android:name="com.embarcadero.gcm.notifications.GCMIntentService" /> куда делась ума не приложу... делалось строго все по пунктам из статьи и эта строка была в начале разработки добавлена. Может С++ билдер ее как-то убил... Снова добавили собрали проект с новой версией - есть пуши и когда приложение выгружено. Сейчас все нормально.
    2 балла
  4. Из стандартных иконку отображают: listboxitembottomdetail, listboxitemleftdetail, listboxitemnodetail, listboxitemrightdetail. tstListbox1.zip
    2 балла
  5. Проблему определили в чате телеграма, заключается она в том, что разработчики MIUI 8.2.10 опять изменили обработку разрешений.
    2 балла
  6. Axbor

    Собственный TListBoxItem на C++

    Очень не хватает примеров на C++. Решил поделится опытом. Рассмотрим создание собственного "ListBoxItem"а на C++. И так начнем. Для начало создадим стиль для нашего "ListItem"а. В моем случае оно выглядит так: Структура выглядеть следующим образом: А вы сразу можете создать собственный стиль. Создадим класс для нашего "Item"а. Я назвал его TMyListBoxItem. Нужно знать следующие вещи: ApplyStyle() вызывается когда стиль загружен. FreeStyle() когда стиль выгружен. GetDefaultStyleLookupName() когда стиль не задано берется названые стиля по умолчанию. FindStyleResource("стиль") ищет в стиле ресурс с заданным названием. ListBox автоматически очищает из невидимых "Item"ов стиль что бы избежать от расходы на память. И заново загружает когда оно видимо. При этом вызывается соответствующие функции приведенные выше я приведу только некоторые кусочки кода. Остальное всё можете посмотреть в прикреплённых файлах. class TMyListBoxItem : public TListBoxItem { private: // Переменные для хранения данных System::UnicodeString FTimeTo; System::UnicodeString FTimeFrom; //.... // Визуальные компоненты TText* FTextTimeTo; TText* FTextTimeFrom; //... // Функции для присваивания данных, это нужно при написании "properties" void __fastcall SetTimeTo(const System::UnicodeString Value); void __fastcall SetTimeFrom(const System::UnicodeString Value); protected: void __fastcall ApplyStyle(); void __fastcall FreeStyle(); System::UnicodeString __fastcall GetDefaultStyleLookupName(); virtual void UpdateStyleData(); __published: __property System::UnicodeString TimeTo = {read=FTimeTo, write=SetTimeTo}; __property System::UnicodeString TimeFrom = {read=FTimeFrom, write=SetTimeFrom}; public: __fastcall TMyListBoxItem(System::Classes::TComponent* AOwner); }; Теперь напишем сами функции. void __fastcall TMyListBoxItem::ApplyStyle() { // Вызов метода предка TListBoxItem::ApplyStyle(); TFmxObject *StyleObject; // Поиск ресурса из стиля. Посмотрите в скрине, там есть ресурс с названием "timeto" типа TText StyleObject = FindStyleResource("timeto"); // dynamic_cast нужен для корректного преобразования типов. Если тип найденного ресурса не является TText то указателю будет присвоен NULL FTextTimeTo = dynamic_cast<TText*>(StyleObject); StyleObject = FindStyleResource("timefrom"); FTextTimeFrom = dynamic_cast<TText*>(StyleObject); UpdateStyleData(); } void __fastcall TMyListBoxItem::FreeStyle() { // Стиль выгружен из памяти. Нужно очистить указатели что бы избежать ошибок FTextTimeTo = NULL; FTextTimeFrom = NULL; TListBoxItem::FreeStyle(); } System::UnicodeString __fastcall TMyListBoxItem::GetDefaultStyleLookupName() { // название стиля для нашего "Item"а по умолчанию return "mylistboxitemstyle"; } void TMyListBoxItem::UpdateStyleData() { if(FTextTimeTo) FTextTimeTo->Text = FTimeTo; if(FTextTimeFrom) FTextTimeFrom->Text = FTimeFrom; } void __fastcall TMyListBoxItem::SetTimeTo(const System::UnicodeString Value) { FTimeTo = Value; if(FTextTimeTo) FTextTimeTo->Text = FTimeTo; } Вот и всё. Остается только добавит в наш проект ListBox и button для проверки. Вот функция создания нашего "Item"а: void __fastcall TForm1::Button1Click(TObject *Sender) { TMyListBoxItem *Item = new TMyListBoxItem(this); Item->Parent = ListBox1; Item->StyleLookup = "customstyle1"; Item->TimeFrom = "11:20"; Item->TimeTo = "12:50"; } Скриншот программы: В архиве мой класс и стиль. Для корректного отображения некоторых символов нужен fontcustom Какие вопросы задавайте. Отдельное спасибо Ярославу за мануал на дельфи: http://blogs.embarcadero.com/yaroslavbrovin/2012/10/15/listboxitem_styling_part2/ Администраторы и модераторы, прошу подкорректировать если что то неправильно. ListBoxItem.zip
    1 балл
  7. вместе со студией идёт демка ScrollableForm, делайте по аналогии
    1 балл
  8. Равиль Зарипов (ZuBy)

    Телеграмм

    это может зависеть от производителя девайса
    1 балл
  9. Равиль Зарипов (ZuBy)

    Телеграмм

    проект который я опубликовал без этого разрешения. специально сделал, чтобы найти причину
    1 балл
  10. Rusland

    Телеграмм

    Евгений Корепов где-то давал ссылку как писать эту политику и даже сайт свой предлагал для ее размещения
    1 балл
  11. krapotkin

    Телеграмм

    ну, несложно написать несколько строк стандартной политики тем более READ PHONE STATE нужно почти всем. я даже думаю, что оно там по умолчанию всегда есть.
    1 балл
  12. Равиль Зарипов (ZuBy)

    Телеграмм

    оно то работает) тут же вся соль в том что "не работает" когда опубликуется приложение. сегодня вечером снова залью приложение. модеры ругаются на значок (типа собственность firemonkey, бла-бла-бла) я хотел у тебя спросить, видать твой лаунчер так делает я ждал ответа, переживал покушал ты или нет
    1 балл
  13. ENERGY

    Телеграмм

    В Firebase я делал для Debug и Release версий разные проекты, название пакета одно и то же. Сервис генерит разные 4 ключа (по 2) для них и эти ключи вставляю в Version Info (Release и Debug опции) и второй ключ (номер) - нужно использовать в коде для регистрации. Md хэш программы на сайте Firebase (там где указывается имя пакета) я не указывал, хотя там есть эта опция.
    1 балл
  14. Равиль Зарипов (ZuBy)

    Телеграмм

    "Руслан, ты покушал?"
    1 балл
  15. Andrey Efimov

    WiFi Info

    Переписал приложение с нуля, первое сообщение обновлено. Буду благодарен за тесты и сообщения о найденных неполадках
    1 балл
  16. Не знаю есть ли такое решение в намерениях но как альтернатива - копии в переменную количество созданных уведомлений , при появлении дубликата гаси ранее созданное и в заголовке нового уведомления выводи общее количество. В примерах где то видел подобное. Если закрыто апк поднимай сервер
    1 балл
  17. ENERGY

    Обрезание текста в TListBox

    Установите - Stylelookup у каждого Item'a - listboxitemnodetail или listboxitembottomdetail Detail - обозначает что появляется еще одна дополнителная текстовая строка, bottom detail переводится как "детали внизу". Добавить текст в нее можно через инспектор - кликните на нужный listitem > ItemData > Detail listboxitemleftdetail - содержит еще одну текстовую панельку справа, которая перекрывает основной текст. Вы можете сделать эти пункты в своем стиле - добавить туда визуальные компоненты, такие как Tswitch, кнопки итд. Для этого, - Нажмите правой кнопкой мыши (ПКМ) по листбоксу - Add ListBoxitem, выберите для этого Item'a нужный стиль, в Stylelookup, на основе которого хотите сделать свой. Далее, ПКМ по Item - Edit Custom Style. Выделите в инспекторе ListBoxItem1Style1 - это ваш новый стиль, можете переименовать его в StyleName на нужное вам имя. Это имя потом указывайте в StyleLookup каждого item'a. Теперь можно переносить мышкой компоненты на этот шаблон. Имена меняйте в StyleName. По этим именам потом можно обращаться к ним таким образом: vItem.StylesData['descript'] := 'text'; vItem.StylesData['details'] := 'Text'; vItem.ImageIndex := 5; Чтобы отображался картинка при помощи ImageIndex в таком собственном Item е - нужно кинуть TGlyph и назвать Stylename как 'glyphstyle'. TListBox довольно медленный компонент, и нужен в основном для небольших списков (напр. настройки) или там, где используются Items с контролами. Для динамических списков используйте TListView.
    1 балл
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...