-
Постов
159 -
Зарегистрирован
-
Посещение
-
Победитель дней
6
Весь контент Axbor
-
может быть. Но разве может ли программа с размером 7-8 мб может возрасти до размера 40-50 мб из за библиотек? Сильно сомневаюсь...
-
Я имею виду сам размер apk файла. Не установленный. А вашем случае оно после установки занимает такое место
-
нет не видны
-
Не знаю из за чего так случилось, но размер примитивного приложения достиг до 45 мб. Открыл архив apk lib\armeabi-v7a\ там один лишний so файл. Один вот такого вида "libIzohli lugat.so" а другой такой "libIzohli_lugat.so" откуда оно появляется никак не пойму.
-
Решил проблему с добавлением Unit вот такого вида: unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls, FMX.Controls.Presentation, FMX.Edit; procedure setmodeldata(Edit: TEdit); implementation uses System.Rtti; procedure setmodeldata(Edit: TEdit); var SuggestionList: TArray<string>; begin SuggestionList := ['Россия', 'Украина', 'Белорусь', 'Азербайджан', 'Армения', 'Грузия', 'Казахстан', 'Киргизстан', 'Латвия', 'Литва', 'Молдавия']; Edit.Model.Data['suggestion_list'] := TValue.From < TArray < string >> (SuggestionList); end; end. и вызвал функцию setmodeldata с моей формы.
-
Тут показано реализация на Delphi. http://yaroslavbrovin.ru/new-approach-of-development-of-firemonkey-control-control-model-presentation-part-2-tedit-with-autocomplete-ru/ Я взял FMX.Edit.Autocomplete.pas и добавил в свой проект. И дальше делаю так: void __fastcall TAddDataForm::provincePresentationNameChoosing(TObject *Sender, UnicodeString &PresenterName) { PresenterName = "AutocompleteEdit-style"; } //--------------------------------------------------------------------------- void __fastcall TAddDataForm::FormCreate(TObject *Sender) { String SuggestionList[] = {"Apple","Alow", "Bottom" "Window", "Salom", "Zepto"}; province->Model->Data["suggestion_list"] = (TValue::From<String*>(SuggestionList)); } //--------------------------------------------------------------------------- но ничего не выходит. Что я делаю не так?
-
Хотел бы поделиться опытом. Рассмотрим случай, когда вам необходимо использовать кастомное диалоговое окно с затемнением. Вроде вот такого: Первое, что приходит в голову, это использование Rectangle’ов. Но такой подход показался мне очень сложным, и я нашёл другой способ (многие о нём уже знают) создания кастомного окна. Сам способ: Создаем вторую форму, и изменяем следующие свойства: Transparency = True Fill->Color = #78000000 Fill->Kind = Solid Поместим туда один TLayout, выставим свойство «Align» в значение «Center». И зададим нужный размер. Потом кидаем на TLayout компонент «TRectangle» со свойством «Align – Content». Чтобы TLayout не мешался во время design-time, присвоим свойству Locked значение True. Кидаем остальные компоненты, чтобы получить окно нужного нам вида. В итоге у меня получилась вот такая иерархия компонентов: Компонент TRectAnimation используем для анимирования процесса появления окна. Вы можете придумать свою анимацию. В данном случае анимируется свойства формы «Padding». Напишем следующий код, для того, чтобы при клике на тёмную область формы окно закрылось (событие формы OnTap работает на сенсорных экранах, если вам нужен OnClick тогда воспользуйтесь Layout’ми или Rectangle’ми): void __fastcall TForm2::FormTap(TObject *Sender, const TPointF &Point) { Close(); } Вот и всё. К сообщению, я приложил демо приложение с примером такого окна. У администраторов просил бы поправить допущенные ошибки так как я не владею русским языком очень хорошем уровне. Или же добавит кое какие дополнительные информации ссылки и т.д. Demo.zip
-
Да только для мой мир оставили
-
Спасибо за материал. Но там что то не вижу про маил ру агент. (Социальные приложения в моем мире, StandAlone приложения, Внешние сайты) Какое из этих мне нужно читать не подскажете?
-
Просто для общения в чате.
-
Просто для интереса хотел создать для себя mail.ru agent. Поискал в интернете но ничего для Embarcadero не нашел. Может у кого то есть какие то готовые решения (с исходниками желательно) поделитесь пожалуйста. Или же направления где чего искать.
-
При попытке компияции на Андроид выдает вот такую ошибку: [PAClient Error] Error: E2568 Unable to execute '"C:\Program Files\Java\jdk1.7.0_71\bin\JarSigner.exe" -keystore "C:\Users\...\AppData\Roaming\Embarcadero\BDS\17.0\debug.keystore" -storepass android -keypass android -sigalg MD5withRSA -digestalg SHA1 "D:\....\Android\Debug\...\bin\...-unsigned.apk" "androiddebugkey"' (Error 1) SDK проверил, JDK тоже проверил вроде всё на месте.. Как исправит эту ошибку? RX10
-
На VCL это очень легко делается. Сделаете TransparentColor = true, и color формы сделаете одинаково со свойством TransparentColorValue На FMX пока не нашел
-
Наверно нужно создать свой стил или изменить какую нибудь имеющийся стил в котором изменяется бордерс формы и тем накосячит что бы только середина формы стало прозрачным. Сейчас посмотрю но мне кажется такое невозможно.
-
Я предлагаю создать свой собственный класс для таких целей. Обработаем свойство Resize и всё, никаких проблем не будет. http://fire-monkey.ru/topic/2280-sobstvennyi-tlistboxitem-na-c/ тут я описал как создать собственный класс для ListBoxItem там же есть ссылка и для Delphi. Ниже приведен класс который я создал, только на C++. Посмотрите там обработчик события ApplyStyleLookup() и Resize(). И еще предлагаю вместо TLabel использовать TText. Если всё таки хотите своим путём тогда вычислите высоты с помощью TTextLayout, это делается так: var L : TTextLayout; begin L := TTextLayoutManager.DefaultTextLayout.Create; L.BeginUpdate; L.Text := FtextType.Text; {Вместо FTextType будет ваш Label} L.MaxSize := TPointF(FtextType.Width, 1000); L.Font := FTextType.Font; {} L.WordWrap := FTextType.WordWrap; L.HorizontalAlign := FTextType.HorzTextAlign; L.VerticalAlign := FTextType.VertTextAlign; L.EndUpdate; height := L.Height; end; Я не силён в Delphi, но думаю вы поймете. ListBoxItem.zip
-
Хотел для свой андроид создать приложение которая воспроизводить местные радиостанции без подключения к интернету. Возможно ли такое создать на FMX? Где что прочитать? Вообще не требуется ли для такого программы какие нибудь физические элементы?
-
Пытаюсь запустить демо проект из коробки XE10 которая находится по этому пути: C:\Users\Public\Documents\Embarcadero\Studio\17.0\Samples\Object Pascal\Database\FireDAC\Samples\Getting Started\MySQL При попытке соединится с сервером выдает ошибку Client does not support authentication protocol requested by server; consider upgrading MySQL client Как это исправит?
-
Есть компонент GestureManager. Бросим его в проект. Указываем у TImage->Touch->GestureManager на наш GestureManager. Включаем в TImage->Touch->Gestures нужные нам жесты (на вашем случае Left и Right). Потом в событии OnGesture TImage запишем следующее: void __fastcall TForm1::Image1Gesture(TObject *Sender, const TGestureEventInfo &EventInfo, bool &Handled) { switch(EventInfo.GestureID) { case sgiLeft: // произошло свайп в лево Handled = true; break; case sgiRight: // произошло свайп в право Handled = true; break; } }
-
Было бы круто если такой подход подойдет и для ListView.
-
Очень не хватает примеров на 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
-
for(int i = 0; i < ListView1->Items->Count; i ++) { Memo1->Lines->Add(ListView1->Items->AppearanceItem[i]->Text); }
-
Теперь скачалось. Спасибо.