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

masmat

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

    75
  • Зарегистрирован

  • Посещение

  • Победитель дней

    1

Весь контент masmat

  1. Всем привет. Есть собственное приложение, в которое нужно передать входные данные из другого приложения через диалог выбора приложений Например: "Чужая" программа сформировала строку "Файл вашего доклада можно скачать по адресу doklad.ru/file0001.pdf" и может отправить эту строку в выбранное тобой в диалоге приложение. Скрин диалога во вложении Вопрос: как эту строку получить в своем приложении и открыть свое приложение?
  2. masmat

    Ошибки с FMXTee в проекте VLC

    Перевел проект с Delphi 2010 на XE10 Seatle для Windows Ранее использовал компоненты из пакета RzRaise. При переводе поменял все компоненты на типовые При сборке приложения выдает вот такие ошибки. Не могу понять откуда взялись ссылки на эти модули и не могу их найти на компе, что бы подсунуть [dcc32 Error] E1026 File not found: 'FMXTee.Editor.Picture.fmx' [dcc32 Error] E1026 File not found: 'FMXTee.Editor.Brush.fmx' [dcc32 Error] E1026 File not found: 'FMXTee.Editor.Stroke.fmx' [dcc32 Error] E1026 File not found: 'FMXTee.Editor.Gradient.fmx' [dcc32 Error] E1026 File not found: 'FMXTee.Editor.Shadow.fmx' [dcc32 Error] E1026 File not found: 'FMXTee.Editor.Panel.fmx' Failed Кто знает как это лечится?
  3. Может кто сталкивался с необходимостью установки программно режима "В самолете" для отключения всех сетевых служб, или отключить мобильный интернет и WiFi Не могу нигде найти как это сделать.
  4. Вообщем нужно для этого использовать как оказалось функцию SmsManager.sendMultipartTextMessage uses Androidapi.JNI.JavaTypes, Androidapi.JNI.Telephony, Androidapi.Helpers; ... procedure TForm1.SendSms(Num, mess : string); var SmsTo, Jmess: JString; SmsManager: JSmsManager; messageArray: JArrayList; begin SmsManager := TJSmsManager.JavaClass.getDefault; SmsTo := StringToJString(Num); Jmess := StringToJString(mess); messageArray := smsManager.divideMessage(Jmess); //разбивам сообщение на части массива SmsManager.sendMultipartTextMessage(smsTo, nil, messageArray, nil, nil); end;
  5. Тогда получается, что отправляется два сообщения СМС, т.е. предложение разорвано. А нужно именно "склееное" сообщение, одним текстом
  6. Итак, 1 SMS на латинице вмещает до 160 символов, 1 SMS на кириллице — 70 символов. Если Вы хотите отправить длинное сообщение в 2 части и более, то 1 часть SMS на латинице сможет содержать до 153 символов, а 1 SMS на кириллице — до 67 символов. Исходный код, приведенный ниже работает хорошо, только если в сообщении до 67 символов Кириллицей, а если символов в сообщении 68 и более, то SMS не отправляется. uses Androidapi.JNI.JavaTypes, Androidapi.JNI.Telephony, Androidapi.Helpers; ... procedure TFrmMain.BtnSendSmsClick(Sender: TObject); var SmsTo: JString; SmsManager: JSmsManager; begin SmsManager := TJSmsManager.JavaClass.getDefault; SmsTo := StringToJString('+79*********'); SmsManager.sendTextMessage(smsTo, nil, StringToJString('Test SMS'), nil, nil); end; Я понимаю, что при превышении определенного кол-ва символов, SMS должна форматироваться в MMS, но отправка все равно не происходит. Собственно вопрос, как решить эту проблему.
  7. Спасибо за код, но как Вы решали отправку длинного смс сообщения, т.е. более 67 символов на Кириллице?
  8. Если возникает проблема с поворотом экрана, нужно отредактировать файл AndroidManifest.template.xml Нужно скорректировать выделенную строку <%application-meta-data%> <!-- Our activity is a subclass of the built-in NativeActivity framework class. This will take care of integrating with our NDK code. --> <activity android:name="com.embarcadero.firemonkey.FMXNativeActivity" android:label="%activityLabel%" android:configChanges="orientation|keyboard|keyboardHidden|screenSize" android:launchMode="singleTask"> <!-- Tell NativeActivity the name of our .so --> <meta-data android:name="android.app.lib_name" android:value="%libNameValue%" /> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
  9. Отвечу сам. После длительных танцев с бубном, оказалось, что все таки два сертификата могут работать друг с другом, но нужно сделать два разных узла в "Связке ключей", что бы они не совпадали именами.
  10. masmat

    Push под iOS

    Завтра-послезавтра тоже начинаю в iOS версии Push делать. Пока для себя оставил вот эту закладочку Ссылка Может пригодится.
  11. Это я знаю, сертификаты обновил, корневой тоже. Дело не в этом. Но все равно спасибо
  12. Есть проект D10 + iOS 9 При разработке приложение работает хорошо. Ошибок при запуске не возникает. При сборке приложения для публикации в AppStore присоединяю сертификат Distribution. Но из-за ошибки совместимости с сертификатом Developer приходится этот сертификат (Developer) удалять. Сборка пакета ipa проходит без ошибок. Через Loader загружаю приложение в iTunesConnect, все проходит хорошо, приложение принято к рассмотрению. Но после этого всего приложение перестает запускаться на iPhone, на котором разрабатывалось. А именно: 1. Запускаю 2. Загружается заставка 3. Открывается окно приложения 4. Через 2-3 секунды закрывается, ошибок при этом не выдает. 5. Если посмотреть в Диспетчере задач iPhona (два клика по табу), то видно, что приложение якобы запущено (видно окно приложения). 6. Нажимаю на это окно, оно открывает приложение, но оно не реагирует на нажатия, iPhone виснет на 7-10 секунд и закрывается. После присоединения сертификата разработчика и компиляции, приложение работает в нормальном режиме. Может кто-то решал такую проблему? P.S. удаление сертификатов обусловлено тем, что при загрузке в Loader вылазит ошибка ERROR-90179 и кроме как удалением сертификатов ошибка не решается. P.P.S. опубликованная до этого старая версия приложения в AppStore так же себя ведет. Кому не лень можете установить и проверить, приложение называется "Парнас Сити"
  13. Alex, а Вы не могли бы ссылку на статью отправить, а то не могу найти ее на сервере, может просто не понимаю какую статью искать
  14. Всем спасибо за советы. Вообщем результаты. Оставил на форме: 1 TListView 2 TRectangle 1 TCheckBox 1 TLabel + Почистил раздел USES от ненужных вещей Скорость создания формы, заполнения LiistView и открытие сократилось до 1 сек. Т.О. получается, что нужно очень сильно минимизировать кол-во контролов на формах.
  15. Вообщем вроде как добрался до сути. Поставил секундомер на все операции и как оказалось, я зря грешил на БД. В итоге самым затратным по времени оказалось создание и отрисовка формы. Как видно на картинке, с момента нажатия на кнопку (Начали) до факта создания формы (Создали форму) прошло ЦЕЛЫХ 5 секунд (иногда доходило до 8 секунд) Все остальные операции, включая: замену файла БД из ресурса, выполнение запроса, заполнение и отрисовка ListView, установка видимости 4 Label (зависит от типа запроса) выполнились за 1 секунду. В итоге, вопрос по тормозам БД снят. Возникает теперь вопрос в увеличении скорости создания формы. Ну и конечно 2-е и более нажатия на кнопку отрабатывают менее чем за 1 секунду. Состав формы: 1 TabControl + 3 Закладки 3 ListView 5 Rectangle 5 Label 1 CheckBox И вот на создание этого уходит 5-8 секунд. Бедаааааа
  16. Сейчас еще одну штуку попробую, потом индексы поюзаю
  17. Дык вот как-то не хочется использовать сторонние компоненты, потом трудно "переезжать" на новые версии Delphi. Один проект VLC так и остался на Delphi 2010 из-за этого, что очень печально.
  18. Вот в том то и дело, с таким кол-вом записей индексы не спасут. Тем более, что запрос идет по одному полю, а не по всей БД. У меня есть сомнения на счет скорости обращения к файлу БД, т.к. он лежит на жестком диске. При выполнении запроса процессор можно сказать вообще не используется
  19. почему-то мне кажется, что заполнение ListView происходит мгновенно уточните, что съедает время - открытие датасета или все-таки подключение к БД? Подключение к БД происходит один раз, при первом обращении к ней. Так, что постоянного запроса на подключение нет. Скорее всего это открытие датасета. А есть ли вообще в мобильной платформе какое-нить ограничение скорости по чтению жесткой памяти?
  20. Есть база SQLLite, 202 записи, 27 полей (столбцов). Объем 1,9 мб Разработка в Delphi 10 Seatle Проекты для Android и iOS отдельные, лишних модулей (разных платформ) нет. SDK последних версий. Есть запрос select distinct Cat1 from client where Tip="s" Order By Cat1 Результат запроса 12 записей, которые потом заполняются в ListView LV.BeginUpdate; LV.Items.Clear; while not Query.Eof do begin LItem := LV.Items.Add; LItem.Text := Query.FieldByName('Cat1').AsString; Query.Next; end; LV.EndUpdate; Вопрос: В первый раз запрос и заполнение ListView отрабатывается в течении 4-5 секунд. В следующий раз все отрабатывает за 1 секунду. и так с каждым запросом. Почему так происходит? Может кто-нить решал уже такую проблему? Данное поведение наблюдается и на Android, и на iOS.
  21. когда-то делал так: aMStream := TMemoryStream.Create; // считываем в aMStream, потом записываем в параметр пишущего запроса: {$IF CompilerVersion >= 28} aQuery.Params[i].SetStream(aMStream, ftBlob, true); {$ELSE} aQuery.Params[i].LoadFromStream(aMStream, ftBlob, 0); {$ENDIF} Спасибо. Буду пробовать
  22. Сорри, действительно тормознул. Вот через поток и не могу вставить в blob поле. В поток то я нашел как выгрузить, 2-3 варианта, а вот как загрузить, вот это и проблемой встало. Не могу сообразить
  23. Хм. у меня Query для Таб1 и Таб2 разные, т.к. файлы БД разные, и оба подключены к разным FDConnection. В этом варианте такой запрос не проканает. Как мне тут указать, что select нужно выполнять в другом Query. Или получается, что нужно делать темповую таблицу в существующем файле БД, потом оттуда запросом перетаскивать картинку, а потом временную таблицу удалять? Думаю, что Android мне не простит столько телодвижений и начнет тормозить
×
×
  • Создать...