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

Rusland

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

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

  • Посещение

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

    26

Активность репутации

  1. Like
    Rusland отреагировална sinuke в Как запаковать PDF в проект и как потом получить к нему доступ?   
    не (Shared)DocumentsPath, a PublicPath
    если заливаете файлы в assets\internal, то ищем файлы с помощью GetDocumentsPath, при этом они никому не видны
    если заливаем файлы в assets\, то ищем с помощью GetPublicPath и файлы видны всем
    мной вышеуказаный код работает
  2. Like
    Rusland отреагировална Andrey Efimov в Embarcadero Delphi - где искать apk после компиляции проекта?   
    Опять же, пользуйтесь поиском!
    Ответ тут: Можно ли собрать APK без смартфона ?
     
    Справка:
    Deploying Your Unsigned Android Application Deploying Your Signed Android Application
  3. Like
    Rusland отреагировална Равиль Зарипов (ZuBy) в Поток в Firemonkey Android для скачивания TXT   
    во первых: синхронизация сделана не правильно
    во вторых: в примерах студии есть демка с отображением индикатора загрузки
    в третьих: создание TIdHTTP (лучше заменить на THTTPClient) нужно делать в потоке
     
    код на коленке, без TThread
    // uses System.Threading TTask.Run( procedure var aHTPP: THTTPClient; aStream: TStringStream; aResult: String; begin aResult := ''; aHTPP := THTTPClient.Create; aStream := TStringStream.Create('', TEncoding.UTF8); try aHTTP.Get('урл://', aStream); aResult := aStream.DataString; finally FreeAndNil(aHTPP); FreeAndNil(aStream); end; TThread.Synchronize(TThread.CurrentThread, procedure begin Memo1.Text := aResult; end) end)  
  4. Like
    Rusland получил реакцию от erden1 в [Android] Проблема с MediaPlayer   
    Проверьте, есть ли файл по этому пути с помощью FileExists()
    Может быть из-за символа # деплой не срабатывает.
  5. Like
    Rusland отреагировална Fedor K в Как отключить TLang на форме/компоненте?   
    Пожалуйста, внимательно посмотрите пример выше: cbbFiles: TComboBox;
    TComboBox содержит внутри себя TComboListBox с элементами списка, которые у вас автопереводятся. При помощи предоставленного выше примера автоперевод отключается. Если у Вас множество TComboBox, которым нужно запретить перевод, то можно воспользоваться таким способом:
    //Создаем helper для TComboBox type TComboBoxHelper = class helper for TComboBox public procedure SetAutoTranslate(AEnabled: Boolean = false); end; ... implementation ... { TComboBoxHelper } //Согласно примеру выше procedure TComboBoxHelper.SetAutoTranslate(AEnabled: Boolean); var i, count : integer; begin count := Self.Count - 1; for i := 0 to count do Self.ListBox.ListItems[i].AutoTranslate := AEnabled; end; ... //Пример использования helper в Вашем коде <Ваш TComboBox 1>.SetAutoTranslate; ... <Ваш TComboBox N>.SetAutoTranslate;  
  6. Like
    Rusland отреагировална krapotkin в Подключение из приложения под Андроид к удаленной БД сайта MySQL в С++ Builder XE   
    все всё отправляли и все работает. иначе бы не было никаких программ.
    вы заголовок запроса хоть один заполнили? а там передается, что вы хотите получить, в какой кодировке, примете ли сжатие, иногда логин пароль и еще куча всего
    раздел Sending a Request with Custom Headers
    http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Using_an_HTTP_Client
     
    все что тут написано про TNetHttpClient ,  принципиально доступно и в THttpClient, на базе которого компонент TNetHttpClient и сделан
    получаемый response тоже обладает набором заголовков, где написано, что пришло, в какой кодировке и т.д.
  7. Like
    Rusland получил реакцию от Fedor K в TWebBrowser и неверный ssl сертификат на сайте.   
    Дошло в чем у меня была проблема: оказалось что я в проект подкидывал FMX.WebBrowser.Android.pas из Токио, а не Берлина. Fedor K, cпасибо
  8. Like
    Rusland отреагировална Fedor K в TWebBrowser и неверный ssl сертификат на сайте.   
    Причина такого поведения довольно простая - java библиотеки FMX часто передают в Delphi только уведомление о событии, без непосредственного влияния на процесс. Открываем библиотеку fmx.jar и смотрим код класса WebClient (package com.embarcadero.firemonkey.webbrowser;):
    public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { super.onReceivedSslError(view, handler, error);// обработка ошибки происходит здесь по дефолту if (this.mListener != null) { this.mListener.onReceivedSslError(view, handler, error);//передача в Delphi лишь уведомления, что событие произошло } } Одно из решений*:
    1. Заменяем** код на:
    public void onReceivedSslError(WebView paramWebView, SslErrorHandler paramSslErrorHandler, SslError paramSslError) { if (this.mListener != null) { this.mListener.onReceivedSslError(paramWebView, paramSslErrorHandler, paramSslError);//Delphi обработчик } else { super.onReceivedSslError(paramWebView, paramSslErrorHandler, paramSslError);//обработчик по умолчанию } } После манипуляций получаем свою версию библиотеки, мой пример здесь (Delphi Berlin).
    2. Подключаем библиотеку к проекту (скриншот ниже).
    3. Копируем unit FMX.WebBrowser.Android в папку своего проекта и меняем следующие строки:
    procedure TAndroidWebBrowserService.TWebBrowserListener.onReceivedSslError( P1: JWebView; P2: JSslErrorHandler; P3: JSslError); begin P2.proceed;//добавляем разрешение для истекших сертификатов FWBService.FailLoadingWithError;//стандартный обработчик OnDidFailLoadWithError end; *Если вариант изменения кода java библиотек совсем не подходит, можно реализовать все средствами Delphi. Для этого создаем свою реализация класса WebViewClient (или WebClient) и задаем его для JWebBrowser:
    //все тот же unit FMX.WebBrowser.Android; procedure TAndroidWebBrowserService.InitUIThread; var lClient : TWebBrowserCLientFix;//наш класс begin FJWebBrowser := TJWebBrowser.JavaClass.init(TAndroidHelper.Activity); FJWebBrowser.getSettings.setJavaScriptEnabled(True); lClient := TWebBrowserCLientFix.Create(Self); FJWebBrowser.setWebViewClient(lClient);//меняем на наш класс FListener := TWebBrowserListener.Create(Self); lClient.SetWebViewListener(FListener); //комментируем //FJWebBrowser.SetWebViewListener(FListener); **Замена кода происходит по тому же сценарию, как и создание своих собственных классов на java. Если кому потребуется помощь - пишите, я помогу ответами и примером.

  9. Like
    Rusland отреагировална Ingalime в [Андроид] статья ZuBy и фантомный пуш   
    Избавление от фонтомных пушей - замена посылки пуша с get на post. Соотвественно изменение php сервера.
    Решение подсказано Fedor K.
  10. Like
    Rusland отреагировална ENERGY в Сетка в TimageList - артефакты на картинках. Проголосуйте!   
    Пожалуйста проголосуйте. Думаю это всех касается, т.к. проблема связана и с TImageList и с TImage. 
    https://quality.embarcadero.com/browse/RSP-18210
  11. Like
    Rusland отреагировална afors в TWebBrowser всегда отображается поверх всех контролов   
    @hippocamus Как получить картинку содержимого рабочей области WebBrowser? Ты об этом? WebBrowser1.MakeScreenshot
     
  12. Like
    Rusland отреагировална kami в June FSM (FMX SPb Meeting)   
    Коллеги! Во флудильне в Телеграме Ярославом была озвучена великолепнейшая мысль - устроить сборище в начале июня в Питере.
    Возможные даты встречи (формат даты - dd.mm, всё - 2017 год): 03.06, 04.06, 10.06, 11.06. Предпочтительные даты выделены жирным.
    Прошу откликнуться, кто хочет и кто может присоединиться к встрече, уточнить предпочтительные для вас дату и время сбора.
    Место сбора по традиции выбирает Ярослав!
  13. Like
    Rusland отреагировална Fedor K в Как прочитать ВСЕ свои push из шторки, при старте программы   
    Для того, чтобы при нажатии на уведомление оно автоматически исчезало из StatusBar при его создании необходимо добавлять флаг:
    localBuilder.setAutoCancel(true); В библиотеке fmx.jar этот код отсутствует (package com.embarcadero.rtl.notifications, public class NotificationPublisher). У меня есть перекомпиленная библиотека для Seattle. Изменение библиотек выполняется таким же образом, как и создание своих всем известным методов через .bat файл.
  14. Like
    Rusland получил реакцию от Semitako в Запуск приложения от PUSH-уведомления   
    Slava Marchenko подсказал что при закрытом приложении получить сам текст можно так:
    procedure TFormMain.FormActivate(Sender: TObject); var CurNotification : TPushServiceNotification; begin if Length(fPushService.StartupNotifications) > 0 then for CurNotification in fPushService.StartupNotifications do if Assigned(CurNotification) then Memo.Lines.Text := CurNotification.Json.ToJSON; end;  
  15. Like
    Rusland отреагировална Евгений Корепов в [Статья] PHP сервер для рассылки Push на Android и iOS   
    Можно и удалять. Но тогда не будут работать мои аналитические инструменты - частота запусков приложения, периоды активности и многое другое.
    У Равиля запрос добавления токена в базу вот такой:
    INSERT INTO PushTokens (`deviceToken`, `deviceID`, `platform`) VALUE ('$deviceToken', '$deviceID', '$platform') ON DUPLICATE KEY UPDATE `deviceToken` = '$deviceToken'"; У меня же он чуть сложнее:
    INSERT INTO gcm (`DeviceID`, `DeviceToken`, `City`, `last_update`, `add_date`, `RequestCount`, `Active`) VALUES ('$DeviceID','$DeviceToken','$City',NOW(),NOW(), 1, 1) ON DUPLICATE KEY UPDATE `DeviceToken` = '$DeviceToken', `City` = '$City', `last_update` = NOW(), `RequestCount` = `RequestCount` + 1, `Active` = 1 Таблица выглядит вот так
    CREATE TABLE `gcm` ( `id` int(11) NOT NULL AUTO_INCREMENT, `DeviceID` char(32) DEFAULT NULL, `DeviceToken` varchar(255) DEFAULT NULL, `City` varchar(100) DEFAULT NULL, `last_update` datetime DEFAULT NULL, `add_date` datetime DEFAULT NULL, `RequestCount` int(11) DEFAULT '1', `Active` bit(1) DEFAULT b'1', PRIMARY KEY (`id`), UNIQUE KEY `DeviceID_index` (`DeviceID`) USING BTREE ) ENGINE=MyISAM AUTO_INCREMENT=40337 DEFAULT CHARSET=utf8; Т.е. кроме всего прочего я вижу:
    Дату-время первого запуска приложения Дату-время последнего запуска приложения Количество запусков приложения Стоит ли еще приложение на этом устройстве (Active) На поле City не обращайте внимание...
  16. Like
    Rusland отреагировална Mars M в Стрелковый тир (игра)   
    Описание того что нужно как то расплывчато, но вот примерно так можно сделать.
    Всего один TImage который используется для отрисовки битмапов.
    Видео
     и проект 
     
    Tire.rar
  17. Like
    Rusland отреагировална enatechno в Параллельные вычисления, System.Threading   
    Видео (Task, Future, Parallel, WaitForAll etc.) 
    и на русском
  18. Like
    Rusland отреагировална kami в К знатокам SQL   
    AND ((FieldDate<=D2) OR (D2 IS NULL))
  19. Like
    Rusland получил реакцию от AngryOwl в Запуск приложения от PUSH-уведомления   
    Slava Marchenko подсказал что при закрытом приложении получить сам текст можно так:
    procedure TFormMain.FormActivate(Sender: TObject); var CurNotification : TPushServiceNotification; begin if Length(fPushService.StartupNotifications) > 0 then for CurNotification in fPushService.StartupNotifications do if Assigned(CurNotification) then Memo.Lines.Text := CurNotification.Json.ToJSON; end;  
  20. Like
    Rusland получил реакцию от Alex7wrt в Запуск приложения от PUSH-уведомления   
    Slava Marchenko подсказал что при закрытом приложении получить сам текст можно так:
    procedure TFormMain.FormActivate(Sender: TObject); var CurNotification : TPushServiceNotification; begin if Length(fPushService.StartupNotifications) > 0 then for CurNotification in fPushService.StartupNotifications do if Assigned(CurNotification) then Memo.Lines.Text := CurNotification.Json.ToJSON; end;  
  21. Haha
    Rusland получил реакцию от Равиль Зарипов (ZuBy) в Возможно ли работать с OpenGL в FireMonkey?   
    Это сообщение 2014 года
  22. Like
    Rusland отреагировална AliZairov в Native Android VideoView   
    Добрый вечер. Скоро будет полностью подготовлен.

  23. Like
    Rusland отреагировална AngryOwl в Как при переходе с эдита на эдит очистить предыдущий текст в клавиатуре, что бы он не попал в новый эдит?   
    Мне помогло следующее:
    TThread.Synchronize(nil, procedure begin memoChatMessage.Text := ' '; memoChatMessage.SelectAll; memoChatMessage.DeleteSelection; end);  
  24. Like
    Rusland отреагировална Mars M в 2D<>3D координаты   
    В общем свой вопрос решил. Вышеописанные функции удобны для работы с координатами.
    И подошли бы мне если бы нужно было перемещать саму модель, но в моем случае нужно работать только с камерой, а это значит что нужно постоянно учитывать ее положение. Короче слишком много математики для фичи которая будет только для того что бы была
    Но к счастью есть свойство ScreenBounds, которое все сделает за меня.
    Вот обновленный пример, по правой кнопке куб вписывается в окно, что мне и нужно.
    https://yadi.sk/d/KVJFHajd3J9ALD
     
    Projects.rar
  25. Like
    Rusland отреагировална A. Sharif в При добавлении итемов в TListBox из события OnViewportPositionChange, ViewportPosition всегда смещается в начало   
    Кажется, ответ нашел сам. ViewportPosition в данном случае устанавливается как надо только если использовать ListBox1.ViewportPosition := TPointF.Create(X,Y) после добавления всех итемов.
×
×
  • Создать...