-
Постов
89 -
Зарегистрирован
-
Посещение
Активность репутации
-
M1shQa отреагировална Равиль Зарипов (ZuBy) в [DELPHI FMX Android] [6.0] Не удается загрузить SSL библиотеку
все дело в TidHTTP (Indy) - его нельзя использовть под Андроидом
-
M1shQa отреагировална Rusland в Как получить информацию и параметры GPS
Работал когда-то. В то время на Seattle делал
-
M1shQa отреагировална sinuke в Как получить информацию и параметры GPS
в качестве предположения...
а на какой версии Андройд работает/не работает? в 6.0 и выше нужны отдельные права на небезопасные разрешения. может поэтому не хочет?
узнать наличие разрешений и запросить их заново можно в блоге Andrey Efimov - http://delphifmandroid.blogspot.com.by (у меня перестал открываться, более точную ссылку дать не могу)
-
M1shQa отреагировална Rusland в Как получить информацию и параметры GPS
Какая версия Delphi?
PS. От Indy компонентов лучше отказаться
-
M1shQa отреагировална Andrey Efimov в [Статья][Android] Автозапуск службы после рестарта ОС
В Java файле всё правильно прописали?
Можно, но тогда нужно добавить jar-файл.
В вашем случае - нет.
На Токио не проверялось. Статья написана для Seattle, но 100% работает на Berlin (только вчера реализовывал данную функцию в новом приложении), а вот Токио пока в топку.
-
M1shQa отреагировална Равиль Зарипов (ZuBy) в Отправка данных по http в фоновом режиме
полезно к прочтению
-
M1shQa получил реакцию от Олег Киреев в Проверка подключения к интернету на мобильном устройстве
Простой способ который у меня на некоторых приложухах стоит
-
M1shQa отреагировална Равиль Зарипов (ZuBy) в Текст с картинками и скроллингом
я бы сделал через браузер и html документ, как раз подойдёт для вашей задачи
-
M1shQa отреагировална Равиль Зарипов (ZuBy) в мониторинг gps, сети и батареи в фоне
1) нужно пилить сервис, а вариант с AlarmManager не подойдёт? только не для приложения, а для сервиса
2) если особо не заморачиваться с БД (сразу отсылать на сервер или sqlLite), то можно в JSON
3) для сервисов да и вообще у ембы есть нативные реализации T(Net)HTTPClient
-
-
M1shQa получил реакцию от Равиль Зарипов (ZuBy) в ListBox Item style (картинка на заднике и ее растяжка).
Блин за 2 секунды сделал сейчас и все получилось, огромное Вам спасибо! Все го то надо было сменить TimageView на Timage Эх балбес)
-
M1shQa отреагировална Равиль Зарипов (ZuBy) в ListBox Item style (картинка на заднике и ее растяжка).
использовать TImage
-
M1shQa отреагировална Равиль Зарипов (ZuBy) в ListBox Item style (картинка на заднике и ее растяжка).
1) кидаем TListBox
2) ПКМ по LB -> Add Item -> TListBoxItem
3) ПКМ по TListBoxItem - > Edit Default Style
4) В Tool Panel ищём TImage, бросаем в стиль ListBoxItemstyle
5) выставляем Align, выключаем HitTest
6) загружаем картинку
7) желательно поменять StyleName
8) Закрываем, сохраняем
9) для нужных Item'ов выставляем StyleLookup
10) Profit!
-
-
M1shQa отреагировална Равиль Зарипов (ZuBy) в Текст на битмапе
procedure TForm1.Button1Click(Sender: TObject); var aBitmap: TBitmap; aRectF: TRectF; begin aBitmap := TBitmap.Create; aBitmap.SetSize(trunc(Image1.Width), trunc(Image1.Height)); aBitmap.Assign(Image1.Bitmap); aBitmap.Canvas.BeginScene; aRectF := RectF(aBitmap.Width - 100, aBitmap.Height - 25, aBitmap.Width, aBitmap.Height); aBitmap.Canvas.Fill.Color := $B4FFFFE5; aBitmap.Canvas.FillRect(aRectF, 0, 0, AllCorners, 1); aBitmap.Canvas.Font.Size := 18; aBitmap.Canvas.Fill.Color := TAlphaColorRec.Black; aBitmap.Canvas.FillText(aRectF, DateToStr(Date), false, 1, [], TTextAlign.Center, TTextAlign.Center); aBitmap.Canvas.EndScene; Image1.Bitmap.Assign(aBitmap); aBitmap.Free; end;
-
M1shQa отреагировална Равиль Зарипов (ZuBy) в Текст на битмапе
да конечно можно, вы просто не указали цвет
нужно запомнить если метод начинается на Fill..., значит нужно менять цвет через
Image.Bitmap.Canvas.Fill.Color := TAlphaColorRec.Black; если на Draw..., то
Image.Bitmap.Canvas.Stroke.Color := TAlphaColorRec.Black; -
M1shQa отреагировална Равиль Зарипов (ZuBy) в Текст на битмапе
как-то так
Image.Bitmap.Canvas.BeginScene; Image.Bitmap.Canvas.FillText(RectF(0,0,100,100), 'Date', false, 1, [], TTextAlign.Center, TTextAlign.Center); Image.Bitmap.Canvas.EndScene; -
M1shQa получил реакцию от Евгений Корепов в Как вытащить список из JSON со значениями
Огромное спасибо, Вы меня сильно выручили!
-
M1shQa отреагировална Евгений Корепов в Как вытащить список из JSON со значениями
Вот получение данных с type=1:
function TFormMain.ParseJSONArray(AJSONString : String) : TStringList; // для удобства функция возвращает TStringList, так будет проще закинуть результат в Memo Var AJSONArray : TJSONArray; AJSONValue : TJSONValue; I : Integer; begin Result:=TStringList.Create; // Создаем результат фозвращаемый функцией AJSONArray:=TJSONArray(TJSONObject.ParseJSONValue(AJSONString)); // Зная что на входе TJSONArray парсим его, пропуская парсинг TJSONObject if Not Assigned(AJSONArray) then // Если парсинг удался, то AJSONArray<>Nil Exit; for I := 0 to AJSONArray.Count-1 do // Работаем как с обычным массивом begin if AJSONArray.Items[I].TryGetValue('type',AJSONValue) Then // Получаем type if Not AJSONValue.Value.Equals('1') then // если type<>1 переходим на следующую итерацию (код ниже пропускается) Continue; if AJSONArray.Items[I].TryGetValue('number',AJSONValue) Then //Здесь используем полезную функцию TryGetValue, защищая себя от некорректных или отсутствующих 'number' Result.Add(AJSONValue.Value); // Если успешно, то добавляем полученную строку в результирующий StringList end; end; "адресс вайолэйшн" потому что код с XSuperObject не безопасный, будет работать до первой ошибки в входных данных, далее крах приложения.
-
M1shQa отреагировална Евгений Корепов в Как вытащить список из JSON со значениями
Для работы с JSON в Delphi есть все что нужно - штатная библиотека System.JSON. Быстрая и удобная, работать с ней одно удовольствие. Вот накидал проект, ваш JSON загружаю из файла.
unit UnitFormMain; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, System.IOUtils, FMX.Controls.Presentation, FMX.ScrollBox, FMX.Memo, System.JSON; type TFormMain = class(TForm) Memo: TMemo; procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } function ParseJSONArray(AJSONString : String) : TStringList; end; var FormMain: TFormMain; implementation {$R *.fmx} procedure TFormMain.FormCreate(Sender: TObject); Var AJSONString : String; begin AJSONString:=TFile.ReadAllText('D:\Embarcadero\Projects\Test\test062 JSON Array\input.json'); // Загружаем JSON в строку Memo.Lines.Assign(ParseJSONArray(AJSONString)); // Вызываем функцию парсинга, если все удачно - Memo заполнится значениями, если нет - останется пустым. end; function TFormMain.ParseJSONArray(AJSONString : String) : TStringList; // для удобства функция возвращает TStringList, так будет проще закинуть результат в Memo Var AJSONArray : TJSONArray; AJSONValue : TJSONValue; I : Integer; begin Result:=TStringList.Create; // Создаем результат фозвращаемый функцией AJSONArray:=TJSONArray(TJSONObject.ParseJSONValue(AJSONString)); // Зная что на входе TJSONArray парсим его, пропуская парсинг TJSONObject if Not Assigned(AJSONArray) then // Если парсинг удался, то AJSONArray<>Nil Exit; for I := 0 to AJSONArray.Count-1 do // Работаем как с обычным массивом if AJSONArray.Items[I].TryGetValue('number',AJSONValue) Then //Здесь используем полезную функцию TryGetValue, защищая себя от некорректных или отсутствующих 'number' Result.Add(AJSONValue.Value); // Если успешно, то добавляем полученную строку в результирующий StringList end; end. P.S. работает под всеми платформами. Скорость для такого небольшого файла JSON можно принять за мгновенную даже на стареньких телефонах. Мне вот тут один сервис отдавал JSON размером в 6 мегабайт. Онлайн парсер http://pro.jsonlint.com/ которым удобно смотреть структуру зависал наглухо. А в Delphi все отлично и быстро работало
-
M1shQa отреагировална Равиль Зарипов (ZuBy) в Как вытащить список из JSON со значениями
Я отказался от родного в пользу XSO, посмотрите как компактно выглядет код который я привел выше. И стабильно и читабельно, скорость тоже на высоте
-
M1shQa отреагировална Равиль Зарипов (ZuBy) в Как вытащить список из JSON со значениями
если использовать XSuperObject
var aJSON: string; xJS, xObj: ISuperObject; j: integer; begin xJS := SO(aJSON); // данные with xJS.A['data'] do // имя массива begin for j := 0 to length - 1 do begin xObj := O[j]; TStringList.Add(xObj.S['number']); // собираем в стринг лист нужное поле end; end; end;
-
M1shQa получил реакцию от Alex Bozhko в Проверка подключения к интернету на мобильном устройстве
Простой способ который у меня на некоторых приложухах стоит
-
M1shQa отреагировална Равиль Зарипов (ZuBy) в Как заставить LocationSensor ловить координаты используя ТОЛЬКО GPS?
можно не разрешать приложению работать пока пользователь не включит высокую точность по GPS
function IsGPS_high_accuracy: Boolean; // uses AndroidApi.Helpers, AndroidApi.JNI.Provider; var Provider: string; LocationMode: integer; begin Result := false; {$IFDEF ANDROID} if TOSVersion.Check(4, 4) then begin LocationMode := TJSettings_Secure.JavaClass.getInt(TAndroidHelper.Context.getContentResolver, TJSettings_Secure.JavaClass.LOCATION_MODE); Result := LocationMode <> TJSettings_Secure.JavaClass.LOCATION_MODE_HIGH_ACCURACY; end else begin Provider := JStringToString(TJSettings_Secure.JavaClass.GetString(TAndroidHelper.Context.getContentResolver, TJSettings_system.JavaClass.LOCATION_PROVIDERS_ALLOWED)); Result := (Pos('gps', Provider) > 0); end; {$ENDIF} end;
-
M1shQa отреагировална Равиль Зарипов (ZuBy) в Как заставить LocationSensor ловить координаты используя ТОЛЬКО GPS?
да все верно