Лидеры
Популярный контент
Показан контент с высокой репутацией 25.07.2017 во всех областях
-
Тогда стандартные стили Вам не подойдут. Создавайте свой стиль для ListBoxItem на базе стандартного или "с нуля". Тут описано как это можно сделать. Вот подправил пример. Создал mylistboxitemstyle в котором только 2 элемента - text и image. Этот стиль загружен в StyleBook1 и указан в Listbox1.DefaultItemStyles.ItemStyle. Можете редактировать этот стиль прямо в StyleBook, добавляя новые элементы и располагая их как Вам нужно. tstListbox1.rar2 балла
-
Не надо ничего удалять, мало ли кому нибудь пригодится...2 балла
-
Ошибка найдена. Из манифеста пропала строка: <service android:name="com.embarcadero.gcm.notifications.GCMIntentService" /> куда делась ума не приложу... делалось строго все по пунктам из статьи и эта строка была в начале разработки добавлена. Может С++ билдер ее как-то убил... Снова добавили собрали проект с новой версией - есть пуши и когда приложение выгружено. Сейчас все нормально.2 балла
-
Вывод/отображение нескольких картинок на форме
Равиль Зарипов (ZuBy) и ещё один отреагировал enatechno за вопрос
Из стандартных иконку отображают: listboxitembottomdetail, listboxitemleftdetail, listboxitemnodetail, listboxitemrightdetail. tstListbox1.zip2 балла -
WiFi Info
Равиль Зарипов (ZuBy) и ещё один отреагировал Andrey Efimov за тема
Проблему определили в чате телеграма, заключается она в том, что разработчики MIUI 8.2.10 опять изменили обработку разрешений.2 балла -
Очень не хватает примеров на 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.zip1 балл
-
прокрутка формы при открытии клавиатуры
Anatoliy отреагировал Равиль Зарипов (ZuBy) за вопрос
вместе со студией идёт демка ScrollableForm, делайте по аналогии1 балл -
Телеграмм
Anatoliy отреагировал Равиль Зарипов (ZuBy) за тема
это может зависеть от производителя девайса1 балл -
Телеграмм
Anatoliy отреагировал Равиль Зарипов (ZuBy) за тема
проект который я опубликовал без этого разрешения. специально сделал, чтобы найти причину1 балл -
Телеграмм
Anatoliy отреагировал Равиль Зарипов (ZuBy) за тема
оно то работает) тут же вся соль в том что "не работает" когда опубликуется приложение. сегодня вечером снова залью приложение. модеры ругаются на значок (типа собственность firemonkey, бла-бла-бла) я хотел у тебя спросить, видать твой лаунчер так делает я ждал ответа, переживал покушал ты или нет1 балл -
В Firebase я делал для Debug и Release версий разные проекты, название пакета одно и то же. Сервис генерит разные 4 ключа (по 2) для них и эти ключи вставляю в Version Info (Release и Debug опции) и второй ключ (номер) - нужно использовать в коде для регистрации. Md хэш программы на сайте Firebase (там где указывается имя пакета) я не указывал, хотя там есть эта опция.1 балл
-
1 балл
-
WiFi Info
Rusland отреагировал Andrey Efimov за тема
Переписал приложение с нуля, первое сообщение обновлено. Буду благодарен за тесты и сообщения о найденных неполадках1 балл -
Не знаю есть ли такое решение в намерениях но как альтернатива - копии в переменную количество созданных уведомлений , при появлении дубликата гаси ранее созданное и в заголовке нового уведомления выводи общее количество. В примерах где то видел подобное. Если закрыто апк поднимай сервер1 балл
-
Установите - 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 балл