Лидеры
Популярный контент
Показан контент с высокой репутацией 29.04.2014 во всех областях
-
ScrollBox.ViewportPosition.Y - вертикаль ScrollBox.ViewportPosition.X - горизонталь2 балла
-
1 балл
-
И так тоже работает: void __fastcall TForm1::FormResize(TObject *Sender) { Application->ProcessMessages(); Sleep(5); }1 балл
-
[Отклонение] Программа не отвечает после вращения устройства
Brovin Yaroslav отреагировал Kitty за вопрос
Вот это исправляет проблему: void __fastcall TForm1::FormResize(TObject *Sender) { //Портретная ориентация if (Height > Width) { Application->ProcessMessages(); Realign(); } //Альбомная ориентация else if (Height < Width) { Application->ProcessMessages(); Realign(); } } Спасибо Nix0N.1 балл -
Компонент для построения графиков
Новый пользователь отреагировал Brovin Yaroslav за вопрос
1 балл -
Может кому пригодиться. Использование java классов JIntent и JNet_Uri. Спасибо разработчику Indy Remy Lebeau (TeamB) http://bcbjournal.org/forums/ void PlayVideo(const String AFileName) { _di_JIntent Intent = TJIntent::JavaClass->init(TJIntent::JavaClass->ACTION_VIEW); _di_Jnet_Uri Data = StrToJURI(AFileName); Intent->setDataAndType(Data, StringToJString(L"video/mp4")); SharedActivity()->startActivity(Intent); }1 балл
-
Запуск видео по расписанию в плеере на Андроиде
Brovin Yaroslav отреагировал Kitty за вопрос
Большое спасибо за развернутые ответы! Да, именно так и планируется. Закуплены однотипные устройства: http://rozetka.com.ua/iconbit_movie_3d_iptv/p387929/ и сугубо для этих целей - играть по одному видео по расписанию. Сейчас вместо программы, в назначенное время ходит человек и запускает нужные видео. Конкретно на этих устройствах еще не тестировала программу т.к. пока все в разработке. На моем же PIPO M7 Андроид 4.4.2 похоже, что работает. Обидно будет, что возможно на этих устройствах программа не заработает как надо, но плюс по любому есть - изучение FM.1 балл -
Запуск видео по расписанию в плеере на Андроиде
Andrey Efimov отреагировал Brovin Yaroslav за вопрос
Если такая опция и есть, то она скорее всего носит рекомендательный характер для системы, а не обязательный. Например, есть опция largeHeap в манифесте, которая говорит о том, что нужно выделять приложению больше памяти largeHeap. Но официально указано, что нет гарантии ее выполнения. Что в общем и ожидаемо. Так как если на устройстве нет свободной памяти, то больше ее брать не от куда. Тоже касается и этой опции. Так как - это будет потенциальный риск написания вредоносного приложения или сервиса, который будет занимать все ресурсы и не давать ничего загрузить.1 балл -
Да, необходимо завершить предыдущую активити с MXPlayer Используйте JNI и переделайте под Ваши нужды: ActivityManager.killBackgroundProcesses(String packageName) Где packageName - название пакета MXPlayer Если видео запускается в том же экземпляре программы MXPlayer, то этого делать не нужно. Можете подсмотреть здесь1 балл
-
[Отклонение] Программа не отвечает после вращения устройства
Brovin Yaroslav отреагировал Nix0N за вопрос
Данные "косяки" присутствовали в RAD Studio XE5. В XE6 полёт нормальный. Android 4.1 Предполагаю, что в Вашем случае проблема кроется в перерисовке стиля. Попробуйте realigncontent, update и т.д.1 балл -
Какие разрешение нужно включить для TIdTCPClient?
Равиль Зарипов (ZuBy) отреагировал Alexey за вопрос
Причина При финальной сборке приложения для Application store в файле AndroidManifest.xml отсутствует разрешение для интернета (не смотря на то, что в разделе Uses Permissions разрешение для интернета стоит true), а при сборке Debug в файле AndroidManifest.xml это разрешение присутствует. Решение Проблема решилась следующим способом: в разделе Uses Permissions разрешение для интернета ставим false, затем в файл AndroidManifest.template.xml. вставляем строку: <uses-permission android:name="android.permission.INTERNET" />1 балл -
Средства логирования в FireMonkey
Ingalime отреагировал Brovin Yaroslav за вопрос
RAD Studio XE5 предоставляет несколько способов логирования под платформы Андроид и iOS. Давайте их рассмотрим: Встроенный в FIreMonkey механизм логирования (кроссплатформенный). Использование системных функция каждой платформы для логирования Использование файлов для вывода логов. Использование сети для передачи сообщений лога 1. Встроенный механизм логирования FireMonkey содержит специальный класс FMX.Types.Log для осуществления логирования на всех платформах. Этот класс использует на каждой платформе системные средства вывода лога. Log = class abstract public class procedure d(const Msg: String); overload; class procedure d(const Fmt: String; const Args: array of const); overload; class procedure d(const Tag: String; const Instance : TObject; const Msg : String); overload; class procedure d(const Tag: String; const Instance : TObject; const Method : String; const Msg : String); overload; class procedure TimeStamp(const Msg: String); overload; class function ObjToString(const Instance : TObject) : String; class function ArrayToString(const AArray : TEnumerable<TFmxObject>) : String; overload; class function ArrayToString(const AArray : TEnumerable<TFmxObject>; MakeStr : ToStringFunc) : String; overload; class procedure DumpFmxObject(const O: TFmxObject; Nest: Integer = 0); end; Он предоставляет довольно много методов по вывода лога. Чтобы его использовать достаточно вызвать любой нужный классовый метод. Например в моем приложении по нажатию на кнопку я буду выводить сообщение: "Log message from FireMonkey application" procedure TFormPhone.Button1Click(Sender: TObject); begin Log.d('Log message from FireMonkey application'); end; Далее нужно понять, куда будет выведено это сообщение. 1.1. Андроид Под андроид это сообщение попадает в системный журнал. Прочитать его можно в утилите Андроида LogCat - это специальная утилита для просмотра системного лога. Ее можно запустить двумя способами: C GUI оболочкой Из командной оболочки (консольный вариант). Первый способ (с GUI). В Eclipse с Android SDK открыть Window->ShowView->LogCat. Откроется окно с GUI интерфейсом, в котором вы сможете увидеть все сообщения, которые отправляют все приложения на телефоне. Стоит отметить, что это вариант LogCat в эклипсе содержит ряд полезных функций по фильтрации лога и его управлению. Поэтому я предпочитаю этот способ, нежели использовать консольный вариант этой же утилиты. Сразу же перед использования советую полностью очистить текущий журнал логов телефона, так как он вначале будет содержать огромное количество сообщений. Для очистки нажмите кнопку очистки лога в окне (кнопка с листком и красным крестиком). Второй способ (консольный режим). Второй вариант запуска утилиты LogCat заключается в вызове утилиты из командной строки. Утилита просмотра журналов логов входит в общую утилиту ADB.exe. Чтобы запустить лог изз командой строки воспользуйтесь следующей командой: .\sdk\platform-tools\adb.exe logcat Утилита лежит в папке platform-tools Android SDK. В вашем случае вы должны указать свой путь к этому файлу. Ключ logcat запускает просмотр журнала логирования. Так же как и в первом варианте я советую предварительно очистить лог вызвав logcat с ключом -c: .\sdk\platform-tools\adb.exe logcat -с Описание всех ключей утилиты logcat: logcat После того, как мы открыли Logcat любым из предложенных способов, запускаем нашу программу и смотрим сообщение в логе: 1.2 Йос В йос лог попадает в два журнала в зависимости от того, где вы запускаете свою программу (Симулятор или устройство). iOS Симулятор. Открываем журнал лога в меню симулятора Отладка->Открыть системный журнал... iOS устройство. Открываем XCode Органайзер и выбираем вкладку Console у вашего устройства. 2. Использование системных функций логирования Для тех, кто по каким-то причинам не хочет использовать FireMonkey для этих целей может использовать на каждой платформе системные функции логирования. 2.1 Андроид Для андроида в Delphi предусмотрены системные функции из Androidapi.Log: { Helper functions } function LOGI(Text: MarshaledAString): Integer; function LOGW(Text: MarshaledAString): Integer; function LOGE(Text: MarshaledAString): Integer; function LOGF(Text: MarshaledAString): Integer; Каждая из которых выводит сообщение с указанным типом (I - информационное сообщение, W - предупреждение, E - ошибка, F - фатальная ошибка) 2.2 iOS В IOS вы можете использовать системную функцию iOSapi.Foundation.NSLog. procedure NSLog(format: PNSString); cdecl; varargs; external libFoundation name _PU + 'NSLog'; 3. Логирование в файл Является самым стандартным средством. Для его использования вы можете использовать стандартные способы работы с текстовыми файлами, которые полностью работают на всех платформах. 4. Логирование по сети Этот способ так же имеет место быть и заключается в создании простого TCP клиента на стороне вашего приложения и FTP сервера на Windows. С приложения вы просто шлете на указанный адрес сервера сообщения, а на стороне сервера просто отображаете. Для этих целей можно использовать стандартные Indy компоненты.1 балл