Ingalime
-
Постов
354 -
Зарегистрирован
-
Посещение
-
Победитель дней
5
Активность репутации
-
Ingalime отреагировална qz5 в Поддержка x32 систем в Google Play
Надо включить вот эту галочку:
Но подробнее в этой статье на английском: https://blog.marcocantu.com/blog/2019-delphi-android-64bit-rad-1033.html
Читайте там "Android App Bundle Support"
-
Ingalime отреагировална Равиль Зарипов (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)
-
Ingalime отреагировална qz5 в Поддержка x32 систем в Google Play
Нужно выкладывать в формате ААВ. Где-то на форуме была инструкция и на оф.сайте инструкция на английском. Там галочку надо включить в настройках 64-битной версии.
-
Ingalime отреагировална Владимир Б. в TMemo для вывода лога тормозит
Первая тестовая версия в виде компонента: https://github.com/ange007/TLogViewer
Изменения по сравнению с изначальной версией:
Параметры строки: сообщение, ссылка (для перехода при двойном клике), стиль, цвет Добавлено выделение "от и до" при помощи Shift мышкой Добавлена смена строк с клавиатуры (вверх, вниз) Добавление строк списком (правда пока без стилизации и ссылок) Ну и по мелочи в связи с переводом в компонент Чего нет но надо-бы:
Выделение через Ctrl (по одному) Выделение "от и до" при помощи Shift с клавиатуры Расширение функциональности меню Хранение в каком-то виде "удалённых" в связи с "заполнением буфера" пунктов, с дальнейшим повторным отображением при необходимости Многострочный текст -
Ingalime отреагировална slav_z в Требуется приложение на на все смартфоны
хорошо! тогда обнуляйте ExceptionMessage вместе с break; т.к. на одной из предыдущих итерации сервер может вернуть не 200 (черт его знает)... и вообще проверка <>'Такой но...' должна выполняться только если сервер вернул 200.... кроме того надо выходить из цикла если пользователь закрывает программу во время вашей обработки (Thread.CheckTerminated кажется)... иначе, пока ваш цикл полностью не отработает, программа не закроется...
-
-
-
Ingalime отреагировална Дмитрий Ш. в как ускорить обработку данных
изучаем SQL.
Insert into T1 (id, cnt) select clnt_id, count(*) from T2 group by 1 -
Ingalime отреагировална Slym в Свойства стиля у TSwitch
Мда...
На такой случай мы патчим FMX.Controls.pas
procedure TStyledControl.StyleDataChanged(const Index: string; const Value: TValue); var Obj: TObject; InstanceName, PropertyName: string; PropertyValue: TValue; begin PropertyName := Index; InstanceName := GetToken(PropertyName, '.'); if SameText(InstanceName,'self') then Obj:=FResourceLink else Obj := FindStyleResource(InstanceName); if Obj <> nil then и тогда ReleSwitch.StylesData['self.Fill.Color']
-
Ingalime отреагировална Slym в Свойства стиля у TSwitch
ReleSwitch.StylesData['АГДЕКОМУ?.Fill.Color']
обязательно должен быть АГДЕКОМУ
если этот АГДЕКОМУ это кореть стиля - то поместит стиль в TLayout, а этот самый АГДЕКОМУ дать имя
-
Ingalime отреагировална Savage в Изменение стандартного звука а push-уведомлении
Добавил многострочность в PUSH-уведомление
Надо или нет пересобирать classes.dex точно не скажу. Говорят, что на 10.2.3 не надо
Вначале просто подбросить в проект fmx.jar , если изменений нет, то и classes.dex
NotificationPublisher.zip
-
Ingalime отреагировална Savage в Изменение стандартного звука а push-уведомлении
Задачу решил.
Вот измененная процедура, ну и добавил вытягивание параметра sound
private Builder buildNotification(String msgTitle, String msgText, String msgSound, PendingIntent contentIntent) {
int icon = this.mContext.getApplicationContext().getApplicationInfo().icon;
Builder mBuilder = new Builder(this.mContext);
mBuilder.setSmallIcon(icon);
mBuilder.setTicker(msgTitle);
mBuilder.setContentTitle(msgTitle);
mBuilder.setContentText(msgText);
mBuilder.setContentIntent(contentIntent);
// savage
if (msgSound == "") {
mBuilder.setSound(RingtoneManager.getDefaultUri(2));
}
else
{
mBuilder.setSound(Uri.parse("android.resource://" + this.mContext.getPackageName() + "/raw/"+msgSound));
}
//
return mBuilder;
}
Звуковой файл надо добавить в Deployment
Расположение res/raw/
При формировании push-сообщения имя файла указывается без расширения. К примеру, если звуковой файл был event1.mp3, то в пуше посылаем "sound":"event1"
Во вложении патченый файл.
Сборка fmx.jar и classes.dex как в этой теме
NotificationPublisher.zip
-
Ingalime отреагировална Вячеслав в com-порт FireMonkey
Авторство всецело не мое, только правки вносил, т.к. в разных версиях студии код вел себя по-разному.
Прощу прощения за то, что выкладываю в неудобной форме, просто из моего проекта сейчас это будет уже достаточно проблематично вытащить.
Код для использования:
На форме лежат Мемо, кнопки открытия/закрытия, эдит для отправляемых текстов и кнопка отправить. в паблике у формы добавляем объект GPort: TComPort; // ****************************************************************************** // ПРОЦЕДУРЫ РАБОТЫ С COM ПОРТОМ // открываем порт procedure TFormChannels.OpenPort(PortNum: Byte); begin GPort := TComPort.Create(PortNum, br9600); GPort.OnRead := FormChannels.OnRead; GFlagOpen := true; FormChannels.ButtonClosePort.Enabled := true; end; // закрываем порт procedure TFormChannels.ClosePort; begin GPort.Free; end; // отправляем в порт данные procedure TFormChannels.WritePort(strWrite: string); var arrBytes: array of Byte; i: Integer; begin if GFlagOpen = False then // проверяем, открыт ли порт OpenPort(strtoint(edtPort.Text)); // если нет, то открываем SetLength(arrBytes, Length(strWrite)); for i := Low(arrBytes) to High(arrBytes) do arrBytes[i] := Ord(strWrite[i + 1]); GPort.Write(arrBytes); arrBytes := nil; end; // читаем данные из порта procedure TFormChannels.OnRead(Sender: TObject; ReadBytes: array of Byte); var i: Integer; begin memRead1.Lines.BeginUpdate; for i := Low(ReadBytes) to High(ReadBytes) do begin if i > Low(ReadBytes) then memRead1.Text := memRead1.Text; // + '.'; memRead1.Text := memRead1.Text + char(ReadBytes[i]); end; // подчищаем заполняющийся Мемо if memRead1.Lines.Count > 5 then begin // memRead1.Clear; memRead1.Lines.Delete(0); memRead1.Lines.Delete(1); end; memRead1.Lines.EndUpdate; end; procedure TFormChannels.ButtonClosePortClick(Sender: TObject); begin ClosePort; end; // открываем порт кнопкой procedure TFormChannels.ButtonOpenPortClick(Sender: TObject); begin OpenPort(strtoint(edtPort.Text)); end; // отправляем в порт данные кнопкой procedure TFormChannels.btnWriteClick(Sender: TObject); begin WritePort(FormChannels.edtWrite.Text); end; // КОНЕЦ ПРОЦЕДУР РАБОТЫ С COM ПОРТОМ // ****************************************************************************** ComPort.zip
-
-
Ingalime отреагировална x11 в ListBox, Edit и клавиатура
Keep Controls Visible When Virtual Keyboard Pops Up In Delphi
http://www.fmxexpress.com/keep-controls-visible-when-virtual-keyboard-pops-up-in-delphi-10-2-tokyo-on-android-and-ios/
-
Ingalime отреагировална Уроки программирования в ListBox, Edit и клавиатура
Вот видео как делать https://www.youtube.com/watch?v=-MEU2NYWMj0&feature=youtu.be
Сам проект https://yadi.sk/d/nRptAlQFBmTytg
-
Ingalime отреагировална #WAMACO в [iOS] Приложение запускается на iOS Simulator и тут же закрывается.
Только устройство! Что тут еще можно советовать....
-
Ingalime отреагировална Евгений Корепов в TThread.GetTickCount64 хелпер для TThread
По умолчанию в TThread классовая функция GetTickCount имеет тип Cardinal, соответственно если приложение рассчитано на долговременную работу, то через 40 дней результат этой функции или уложит приложение (если отключена защита от переполнения) или превратит приложение в тыкву (если на этом завязана какая то логика).
Для своего проекта написал хелпер для класса TThread, вдруг кому пригодится. Тестил на win10 x64 и linux x64.
unit UnitTThreadHelper; interface uses {$IFDEF MSWINDOWS} Winapi.Windows, {$ENDIF MSWINDOWS} {$IFDEF POSIX} Posix.SysTypes, {$IFDEF MACOS} Macapi.CoreServices, {$ENDIF MACOS} {$IFDEF ANDROID} Posix.Fcntl, {$ENDIF ANDROID} {$IFDEF LINUX} Posix.Time, {$ENDIF LINUX} {$ENDIF POSIX} System.Classes; type TThreadHelper = class helper for TThread class function GetTickCount64 : Int64; static; end; implementation class function TThreadHelper.GetTickCount64 : Int64; {$IF Defined(MSWINDOWS)} begin Result := Winapi.Windows.GetTickCount64; end; {$ELSEIF Defined(MACOS)} begin Result := AbsoluteToNanoseconds(mach_absolute_time) div 1000000; end; {$ELSEIF Defined(POSIX)} var res: timespec; begin clock_gettime(CLOCK_MONOTONIC, @res); Result := (Int64(1000000000) * res.tv_sec + res.tv_nsec) div 1000000; end; {$ELSE OTHERPLATFORM} {$MESSAGE Fatal 'Method not implemented for Platform'} {$ENDIF OTHERPLATFORM} end. При попытке запуска на win x32 упадет - не используйте или проверяйте битность:
if CheckWin32Version(6, 0) then begin GetTickCount64; end else begin GetTickCount; end;
-
Ingalime отреагировална MAD_EVAL в Шрифты для Android в Rio
Погорячился с вопросом, разобрался сам. Может кому надо, вот файл для RIO.
Подключайте к проекту, прописывайте
TextSettings.Font.Family := 'font_name'; // без расширения ttf
ну и в assets\internal задеплоить сам ttf файл
FMX.FontGlyphs.Android.zip
-
-
Ingalime отреагировална Yarpda в Проблема с Android Service
Тоже заметил, что с aab есть проблемы. Иногда почему-то устанавливается 64 битная версия на 32 битный аппарат, соотвественно дальше сплеша на таких устройствах не идет. Если делать Apk с двумя версиями, то такой проблемы не наблюдается.
Но вышеописанное можно сделать гораздо проще. Надо в деплое 64 битной версии добавить файл so из 32 битной версии и помещаем его в папку library\lib\armeabi-v7a\ .
Для создания APK из двух версии. сначала компилируем 32 битную версию, потом 64 битную, но в Apk 64 битной версии уже попадет и 32 битная. И заморачиваться с отдельным подписанием не надо будет. Все сделает среда.
-
-
Ingalime отреагировална SergB в Проблема с Android Service
Ну и по традиции отвечаю опять я ?. Решил я эту проблему.
Я так и не разобрался, где происходит неполадка, либо при формировании aab делфой, либо при формировании установочных файлов при установке с гугла. НО, я поступил следующим образом.
1. Компилируем в делфе отдельно 32 и 64 apk
2. Открываем архиватором apk 64 и копируем из него папку arm64-v8a со всем содержимым куда-нибудь на диск
3. Копируем эту папку arm64-v8a в apk 32.
Итого получаем apk 32 содержащий либы для 32 и 64. (что и нужно гуглу). Но после этого наш файл не подписан. Можно подписать и с компа, но это тот еще геморрой. Я подписывал прямо на телефоне с помощью программы ZipSinger. Может есть и другие, но я делал с ней и все сработало.
После подписания загружаем наш гибридный apk в гугл и все работает без проблем ?.
Ну еще раз скажу, что эта проблема с формированием aab у меня возникла лишь когда я добавил в свое приложение сервис. Если нет сервиса то проблем с aab я не наблюдал.
-
Ingalime отреагировална Slym в Как определить версию Андроид?
System.SysUtils.TOSVersion.Architecture
SizeOf(NativeInt)=8
-
Ingalime отреагировална SVTX в Урезание экрана IOS после перехода на последний XCode
Исправилось обновлением файла special.info.plist до актуальных версий IOS