Таблица лидеров


Популярный контент

Показан наиболее популярный контент за 19.01.2018 во всех областях

  1. 5 баллов
    sinuke

    Ошибки при переходе в Токио

    Как я понимаю модуль FMX.FontGlyphs.Android.pas подключен из Берлинской версии студии. Вам нужен этот файлик для Токио. Как я понимаю, используете что-то типа FontAwesome. Например, на гитхабе Равиля этот файл есть версии и для Берлин и для Токио.
  2. 5 баллов
    Brovin Yaroslav

    Приведение типа - as

    Если посмотреть, что вызывается под капотом для случая с интерфейсами, то можно увидеть: 1. Для вызова Interface1(Instance), вызывает системный метод _IntfCopy, который по сути не проверяет типы, а просто увеличивает счетчик типов. Такое приведение типов не проверяет типы, а просто копирует указатель а реализацию. procedure _IntfCopy(var Dest: IInterface; const Source: IInterface); {$IFDEF PUREPASCAL} var P: Pointer; begin P := Pointer(Dest); if Source <> nil then Source._AddRef; Pointer(Dest) := Pointer(Source); if P <> nil then IInterface(P)._Release; end; {$ELSE} 2. При использовании оператора as будет вызван _IntfCast, который выполняет честное приведение типов через QueryInterface. Поэтому в этом случае вы получите на выходе честный указатель на таблицу интерфейса, если интерфейс поддерживается объектом. procedure _IntfCast(var Dest: IInterface; const Source: IInterface; const IID: TGUID); {$IF defined(PUREPASCAL) or defined(PIC)} // PIC: EBX must be correct before calling QueryInterface var Temp: Pointer; begin if Source = nil then Dest := nil else begin Temp := nil; if Source.QueryInterface(IID, IInterface(Temp)) <> 0 then ErrorAt(byte(reIntfCastError), ReturnAddress) else begin if Assigned(Dest) then Dest._Release; Pointer(Dest) := Temp; end; end; end;
  3. 4 балла
    Если пытаться кормить json парсер кривым json и ожидать, что почему вдруг объект станет неожиданно массивом и не будет исключений, то таких парсеров вам не найти. Проще написать самому: быстро, дешево, без 100500 классов и исключений. И такой, который будет считать, что {} - это массив. А вообще, рекомендую начать с http://www.json.org/ Возможно, после этого придет понимание того, почему нужно то или иное количество классов, ну или хотя бы вы сами разберетесь и поймете, почему так происходит.
  4. 4 балла
    Кривяков Виталий

    Асинхронный NetHTTPClient

    Добрый день! Все проще, гораздо. Net := THTTPClient.Create; Net.BeginPost( procedure (const Value : IAsyncResult) begin AsyncResult(Value); // Вот тут можно вызвать любую процедуру, или просто обработать результат. end, URL, InputStream, OutputStream, Headers); В анонимной процедуре просто вызываете нужную процедуру, для интерактивной одну, для периодических запросов другую.
  5. 4 балла
    Alex7wrt

    Новые требования на Google Play

    Здесь речь идёт о значении targetSDK в файле манифеста. Этот параметр влияет на то, использует ли приложение новые функции последних версий SDK. То есть какие SDK приложение гарантированно поддерживает. Но если сейчас этому параметру разработчик может в принципе придавать любые значения, то со второй половины этого года Google вводит правило, что он должен быть не ниже предпоследней версии. То есть если сейчас последняя версия равна 27, значит этот параметр должен быть с августа не ниже 26 для новых приложений, а с ноября для обновлений. В дальнейшем раз в год по мере выхода новых версий Android нужно повышать это значение на 1. Так Google побуждает разработчиков использовать функции новых версий SDK. Чтобы соответствовать этим требованиям, нужно обновлять значение параметра TargetSDK в файле манифеста, и все будет норм.
  6. 3 балла
    Tumaso

    Нужен нормальный JSON парсер

    А меня System.JSON полностью устраивает. Ошибок парсинга валидных данных не было ни разу, скорость на нормальном уровне. Гигабайтные данные правда не парсирую, но мне это и не нужно
  7. 3 балла
    Равиль Зарипов (ZuBy)

    StatusBar Color

    попробуйте последнюю версию
  8. 2 балла
    Tumaso

    Разочирование

    Код также пишешь, как пишешь на русском языке?
  9. 2 балла
    x11

    Управление окном заставки

    Может кому пригодится. 1. В приложении по умолчанию главной формой, т.е. формой, которая автоматически создается при старте, является форма логина. Т.е. именно она появляется первой. 2. В форме логина уже во время исполнения программы, подменяем форму логина на ту, которая должна теперь считаться главной. procedure SetAsMainForm(aForm:TForm); var P: Pointer; begin P := @Application.Mainform; Pointer(P^) := aForm; end; когда проверили логин/пароль и убедились, что пользователь авторизован, создаём форму и делаем её главной, а форму логина закрываем: procedure TfmLogin.btnOkClick(Sender: TObject); begin if edPass.Text = qUserspassword.AsString then begin UserData.ID := qUsersid.AsInteger; UserData.Name := qUsersname.AsString; UserData.Group := qUsersid_group.AsInteger; fmMain := TfmMain.Create(Application); fmMain.Show; SetAsMainForm(fmMain); close; end else begin lbInfo.Text := 'Ошибка. Пароль неверный.'; end; end;
  10. 2 балла
    wamaco

    Окончание подписки

    только оплатить
  11. 2 балла
    Здравствуйте. Требуется программа на андроид с набором кнопок со следующем функционалом: 1. Кнопка1 - создать базу в test.sqlite (в том месте где доступ к нему есть только у самого приложения (имею ввиду если это не ROOT телефон, при рут и так всё понятно) 2. Кнопка2 - создать таблицу в базе test.sqlite с названием "TblTest01" (с разным набором полей на своё усмотрение) 3. Кнопка3 - создать таблицу в базе test.sqlite с названием "TblTest02" (с разным набором полей на своё усмотрение) 4. Кнопка4 - Добавить строку в таблицу "TblTest01" (любой набор данных на ваших усмотрение) 5. Кнопка5 - Удалить строку в таблице "TblTest01" (по любому ключу на ваше усмотрение) 6. Кнопка6 - Изменить строку в таблице "TblTest01" (по любому ключу и любое значение на ваше усмотрение) Приложение должно иметь фоновый сервис, который должен получать данные с сервера и добавлять их в базу test.sqlite в таблицу "TblTest02". При получение новый данных, сервис должен показать в "шторке" сообщение, по клику на которую открывается само приложение с визуальной частью. Т.е. если визуально приложение закрыто, выгружено, не запущено или запущено, фоновый процесс должен сам делать запросы к серверу и добавлять новые данные в базу, если они есть/поступили Приложение должно запускаться вместе с системой, после перезагрузки и т.д. Использовать только те компоненты что доступны в самой среде из коробки. Часть где делается запрос к серверу должен иметь timeout равный 20 секундам. Сервис должен грамотно делать запросы к серверу как положено в Андроид приложениях. Серверная часть мне не нужна, можете для теста сами эмулирвать эти процессы. ----- ЦЕНА: 2500р. СРОКИ: Не горит, но в целом где то дней 7 есть Перечисляю на QIWI, ЯД, Сбербанк, короче куда скажите.
  12. 2 балла
    sinuke

    Как перемещать картинки на Андроиде?

    В OnGesure обрабатывать начало жеста, его окончание и собственно сам жест (Pan). Вот когда-то для себя делал демку test_touchanim.zip
  13. 2 балла
    x11

    Новые требования на Google Play

    здесь http://fire-monkey.ru/topic/4786-несколько-sdk-в-приложении/ обсудили, вывод: нужно самому ручками указывать в файле шаблона AndroidManifest.template.xml
  14. 2 балла
    x11

    BroadcastReceiver.OnReceive срабазывает 2 раза

    http://blog.mmarvick.com/blog/lollipop-multiple-broadcastreceiver-call-state/ это проблема андроида
  15. 2 балла
    x11

    Служба + перехват номера

    На основе нескольких тем форума сделал службу перехвата звонков и номера телефона. http://fire-monkey.ru/topic/3878-статьякак-создать-простой-android-broadcast-receiver-how-to-implement-simplest-android-broadcast-receiver-in-delphi/ http://fire-monkey.ru/topic/2386-перехват-события-звонка/ http://fire-monkey.ru/topic/2972-использование-нативных-localbroadcastmanager-и-broadcastreceiver/ Покритикуйте пожалуйста. Уверен, что не всё правильно. Но что до ума не удалось довести, так это то, как правильно останавливать службу и закрывать приложение. Проект (для Токио) приложил теме. Заранее благодарен. BR2.rar
  16. 2 балла
    "Сервис должен грамотно делать запросы к серверу как положено в Андроид приложениях. " Просто улыбнуло....)))
  17. 2 балла
    rareMax

    Оповещение о новых темах в Telegram

    Запущен канал в мессенджере Telegram, в котором оповещается о новых темах этого форума. На данный момент могут быть некоторые сбои, будьте терпеливы Предложения пишите тут, в комментариях. Канал: https://t.me/FMonkeyX
  18. 2 балла
    Akad

    Лагает StrigGrid - Андроид

    В смысле для чего? Что бы значениями заполнить таблицу. Он разве работает в каком-то другом режиме? На сколько я знаю только TStringGrid хранит значения в себе TGrid не умеет такого. У меня достаточно сложный код: procedure CTableElement.Grid1GetValue(Sender: TObject; const ACol, ARow: Integer; var Value: TValue); begin if ARow >= Length(CellValue) then begin assert(false); end; if ACol >= Length(CellValue[ARow].cols) then begin assert(false); end; if ACol = -1 then begin Value := CellValue[ARow].color; exit; end; if ACol = -2 then begin Value := CellValue[ARow].isBlinking; exit; end; Value := CellValue[ARow].cols[ACol].GetVal; end; Т.е. у меня описан цвет строки, её мигание. GetVal у меня TValue. В нём может быть текст или картинка.
  19. 2 балла
    x11

    Поиск контакта по номеру

    function TContactsManager.GetContactByNumber( const aPhoneNumber: string): string; var wUri: JNet_URI; wCursor: JCursor; wfilter, wJQueryParams: TJavaObjectArray<JString>; begin Result := ''; wUri := TJNet_URI.JavaClass.withAppendedPath ( TJContactsContract_PhoneLookup.JavaClass.CONTENT_FILTER_URI, StringToJString(aPhoneNumber) ); wfilter := TJavaObjectArray<JString>.Create(2); wfilter[0] := StringToJString('lookup'); wfilter[1] := StringToJString('display_name'); with SharedActivity.getContentResolver do wCursor := query(wUri, wfilter, nil, nil, nil); try if Assigned(wCursor) and (wCursor.getCount > 0) then begin wCursor.moveToNext; Result := JStringToString(wCursor.getString( wCursor.getColumnIndex(StringToJString('display_name')))); end; finally wCursor.Close; wCursor := nil; end; end; http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1183758&msg=21183983
  20. 2 балла
    Akad

    Лагает StrigGrid - Андроид

    Переопределите DrawColumnCell, и без проблемы выведите что как и где надо. TGrid - это конструктор. Все данные надо хранить у себя. Переопределить прежде всего GetValue/SetValue. Затем переопределить DrawColumnCell и рисовать в тех колонках, где нужен custom. Вот образец переопределения (то как рекомендует рисовать эмбо - загон ещё тот, лучше туда вообще не смотреть) procedure CScriptRunner.StringGrid1DrawColumnCell(Sender: TObject; const Canvas: TCanvas; const Column: TColumn; const Bounds: TRectF; const Row: Integer; const Value: TValue; const State: TGridDrawStates); const HorzTextMargin = 0; VertTextMargin = 0; var TextLayout : TTextLayout; TextRect: TRectF; center : TPoint; bmp:TBitmap; Val: TValue; color : DWORD; BlinkColumn : boolean; s, s2:string; p:integer; tm : TDateTime; Bou2: TRectF; begin // Например мы не хотим рисовать в колонках с чек боксами if Column is TCheckColumn then begin exit; end; // Например хотим менять цвет для визуального отделения строк TextRect := Bounds; case Row mod 4 of 0:Canvas.Fill.Color := $FFFFFFFF; 1:Canvas.Fill.Color := $FFF8F8F8; 2:Canvas.Fill.Color := $FFFCFCFC; 3:Canvas.Fill.Color := $FFF5F5F5; end; TextRect.Left := TextRect.Left-5; TextRect.Bottom := TextRect.Bottom; TextRect.Inflate(-HorzTextMargin+12, -VertTextMargin); Canvas.FillRect(TextRect, 0, 0, AllCorners, 1); TextRect := Bounds; //выводим текст canvas.Fill.Color := color canvas.Font.Family := 'Calibri'; canvas.Font.Size := g_ProntFontSize; Canvas.FillText(TextRect,Value.ToString,false,100,[], TTextAlign.Leading,TTextAlign.Leading); end; Главное, что тут можно отрисовать картинку, обратиться например (Sender as TGrid).OnGetValue(Sender,-1,Row, val); color := val.AsUInt64; у меня на -1 выдаётся цвет строки. И так далее. В общем полнейшая кастомизация всего чего можно. Ещё бы глюки поправили...
  21. 2 балла
    mazayhin

    [Андроид] Настройки ОС

    Событие формы OnKeyDown // uses FMX.Platform, FMX.VirtualKeyboard begin if Key = vkHardwareBack then begin Key := 0; end end; Как то так..
  22. 2 балла
    mazayhin

    [Андроид] Настройки ОС

    http://support.quicktapsurvey.com/support/solutions/articles/208386-kiosk-mode-android-5-0-lollipop-or-higher
  23. 2 балла
    Равиль Зарипов (ZuBy)

    [Андроид] Настройки ОС

    В андроиде 5+ появился из коробки киоскмоде, на стоке точно. можно перекрыть кнопку назад, но другие кнопки не перекрыть это максимум что вы можете сделать
  24. 2 балла
    mazayhin

    [Андроид] Настройки ОС

    Для этого надо использовать сторонний лаунчер, реализующий т.н. kioskmode. Кнопку back можно переопределить, а вот остальные система не даст. Взможно, можно с помощью AccesibilityManager, точно не скажу
  25. 2 балла
    любую Shared папку, которую вам не жалко "захламлять". В остальные вас система не пустит, а не-shared уйдут вместе с программой
  26. 2 балла
    Andrey Efimov

    Прозрачность TlistViewItem

    Через стиль можно сделать, "itembackground.color" ставим Null. Ну и прозрачность у самого компонента включаем.
  27. 2 балла
    mazayhin

    Отпечаток пальца

    Мы писали на java библиотеку, реализующую работу с сенсором и кейсторам, подключали с помощью паскалевской обертки. Ели будет интерес, то как дойдут руки, до ума доведем и выложим.
  28. 2 балла
    kami

    VersionCode

    (с) не помню чье: var FProgramVersion: string; function GetProgramVersion: string; var {$IFDEF ANDROID} PackageManager: JPackageManager; PackageInfo: JPackageInfo; {$ENDIF} {$IFDEF IOS} s: MarshaledAString; {$ENDIF} {$IFDEF MSWINDOWS} Exe: string; Size, Handle: DWORD; Buffer: TBytes; FixedPtr: PVSFixedFileInfo; {$ENDIF} begin if FProgramVersion <> '' then begin Result := FProgramVersion; exit; end; {$IFDEF ANDROID} PackageManager := TAndroidHelper.Context.getPackageManager; PackageInfo := PackageManager.getPackageInfo(TAndroidHelper.Context.getPackageName, 0); Result := JStringToString(PackageInfo.versionName); {$ENDIF} {$IFDEF IOS} s := TNSString.Wrap(CFBundleGetValueForInfoDictionaryKey(CFBundleGetMainBundle, kCFBundleVersionKey)).UTF8String; Result := string(s); {$ENDIF} {$IFDEF MSWINDOWS} Exe := ParamStr(0); Size := GetFileVersionInfoSize(PChar(Exe), Handle); if Size = 0 then begin Result := 'Unknown'; exit; end; SetLength(Buffer, Size); if not GetFileVersionInfo(PChar(Exe), Handle, Size, Buffer) then begin Result := 'Unknown'; exit; end; if not VerQueryValue(Buffer, '\', Pointer(FixedPtr), Size) then begin Result := 'Unknown'; exit; end; Result := Format('%d.%d.%d.%d', [LongRec(FixedPtr.dwFileVersionMS).Hi, // major LongRec(FixedPtr.dwFileVersionMS).Lo, // minor LongRec(FixedPtr.dwFileVersionLS).Hi, // release LongRec(FixedPtr.dwFileVersionLS).Lo]); // build {$ENDIF} FProgramVersion := Result; end;
  29. 2 балла
    StartCommand вызывается каждый раз, когда мы вызываем из приложения StartService. А как обрабатывать намерение (Intent) переданный в этот метод — это наше дело. У меня в этой команде обрабатывался и старт и стоп. Убивать приложение через KillBackgroundProcess не обязательно, это осталось от моего другого приложения, где выгрузить процесс из памяти было критичным.
  30. 2 балла
    Добавляем метод onRequestPermissionsResult в приложение
  31. 2 балла
    x11

    Delphi не видит мой телефон

    В первую очередь нужно проверить, видит ли утилита adb.exe ваше устройство. в консоли CMD нужно зайти в папку "C:\Users\Public\Documents\Embarcadero\Studio\19.0\PlatformSDKs\android-sdk-windows\platform-tools" И выполнить adb devices, появится строка: List of devices attached и под ней все подключенные смартфоны (устройства). Если там ничего не будет, то не установлены USB-драйверы, либо на устройстве не включен режим разработчика. Когда установите драйверы и перезапустите ПК, то adb может всё равно не увидеть устройство, тогда поможет создание файла adb_usb.ini и нужно будет прописать в нём ID устройства: http://digphone.ru/esli-android-adb-ne-vidit-smartfon/ После этого перезапустить ПК. Снова запустить в CMD: adb.exe devices после этого может появиться строка, говорящая о том, что устройство подключено, но не авторизовано, т.е. код устройства и unauthorized: Переподключите смартфон к компьютеру и на экране смартфона должно появиться окно авторизации, где нужно нажать ОК и, возможно, перед этим сперва поставить галочку "Всегда разрешать подключение с этого ПК". Снова выполните adb.exe devices и увидите, что вместо unauthorized, будет слово device. Вместо перезапуска ПК, можно перезапускать службу adb adb kill-server adb start-server
  32. 2 балла
    haword

    [Андроид]не видно картинки

    в делфи делается так - li:= lv.Items.Add; lii:=li.Objects.FindObjectT<TListItemImage>('Image'); lii.OwnsBitmap:=True; далее можно грузить картинку, если в потоке то TThread.Synchronize(TThread.CurrentThread, procedure() begin // присваивание битмапу картинки lii.Bitmap:= TBitmap.Create; lii.Bitmap.SetSize(ItemBitmap.Width, ItemBitmap.Height); lii.Bitmap.Clear(TAlphaColors.Null); lii.Bitmap.CopyFromBitmap(ItemBitmap); end );
  33. 1 балл
    Akad

    Invalid pointer operation

    Именно то, что написано. И ничего более. А присина причины - уже надо выяснять под отладчиком или по логам.
  34. 1 балл
    Brovin Yaroslav

    Linux платформа

    Из коробки Linux работает только для консольных приложений без GUI. Если хочется, чтобы FMX приложение можно было запускать на Linux, то нужно купить дополнительно стороннюю либу: http://www.fmxlinux.com
  35. 1 балл
    ra.eremeev

    Отображение картинок в ListView

    Выкладываю решение. Надеюсь, кому-то будет полезно Есть ощущение, что это очередной костыль, но работает. Проблема - в необходимости перерисовки вручную добавленного TListItemImage после загрузки его Bitmap в потоке. LoadBitmaps.zip
  36. 1 балл
    WinterSun

    Протектор FireMonkey приложений для Mac OS X

    Здравствуйте. VMProtect вроде бы умеет.
  37. 1 балл
    Равиль Зарипов (ZuBy)

    Асинхронный NetHTTPClient

    ну еще вариант TTask.Run(procedure begin //тут отправляем данные на сервер через THTTPClient.Post TThread.Synchronize(TThread.CurrentThread, procedure begin // если нужно делаем что-то в основном потоке end) end)
  38. 1 балл
    Tumaso

    Асинхронный NetHTTPClient

    да, согласен именно так, только замените TNetHTTPClient на THTTPClient
  39. 1 балл
    Tumaso

    Асинхронный NetHTTPClient

    DMS, простейший пример (без обработки эксепшенов) отдельного класса на базе TThread: В основном потоке создаешь нужное количество экземпляров (можно начать с одного), запускаешь, потом при необходимостии передаешь команду на выполнение/получаешь ответ выполненной команды. например так (простейший пример): LThread := TAsyncHttp.Create; LThread.Start; LThread.Command := 'http://www.site.com/data?param=value'; while not LThread.IsReady do Sleep(1);
  40. 1 балл
    krapotkin

    Вопрос по среде Delphi

    в дереве в инспекторе (слева вверху) все очень просто перетаскивается в нужный контейнер хотя вариант с Alt+F12 для сложных случаев мне больше по душе )
  41. 1 балл
    Да еще вот - векторная отрисовка, нативными фукнциями при этом с нормальным сглаживанием.. Работает на Android\iOS\Windows\Mac - юзайте авто гугло переводчик http://www.cnblogs.com/onechen/p/6350096.html https://github.com/OneChen/FMXNativeDraw/
  42. 1 балл
    ENERGY

    Создать анимированный контрол (см. GIF)

    Я решил все на bitmap анимации сделать, без вектора. Мало времени.
  43. 1 балл
    Ок. Спасибо всем. ModernLV очень спас компонент во всём на данный момент устраивает, как прозрачный разделитель так и прозрачный фон и прозрачный Item, просто супер. Есть ещё такой вопрос раз пошло тут про прозрачности. Как можно нарисовать стиль для SearchBox хотелось бы что бы под Windows и Android выглядело одинаково, а не под платформу.
  44. 1 балл
    dnekrasov

    Ошибка InputQuery на Windows

    Не, ну если Вас не заботит то, что Ваше приложение будет выдавать ошибку под виндой - то конечно, пусть сами разбираются
  45. 1 балл
    rareMax

    Скачивание, "докачка" файла

    Смотрите методы: THTTPClient.CheckDownloadResume(); THTTPClient.GetRange() ну и обратите внимание на их асинхронные аналоги
  46. 1 балл
    Евгений Корепов

    JSON Pretty Print - красивый JSON

    Долго мучался отсутствием штатного средства красивого вывода JSON в текст, все что есть в комплекте, в REST к примеру, выводит убогую, не читаемую кашу. Плюнул и на написал свою функцию, на базе REST TSON.Format. function JsonPrettyPrint(AJsonValue : TJsonValue; AIndent : string = ' ') : string; var SourceContent: string; AChar: char; EOL: string; LeftIndent: string; isEOL: boolean; isInString: boolean; isInArray: boolean; isEscape: boolean; begin Result:=''; EOL:=#13#10; AIndent:= ' '; LeftIndent:=''; isEOL:=true; isInString:=false; isInArray:=false; isEscape:=false; SourceContent := AJsonValue.ToString; //This will basically display all strings as Delphi strings. Technically we should show "Json encoded" strings here. for AChar in SourceContent do begin case AChar of '{' : if not isInString and not isInArray then begin Result := Result + AChar + EOL; LeftIndent := LeftIndent + AIndent; Result := Result + LeftIndent; isEOL := true; end; ',' : if not isInString and (AChar = ',') then begin isEOL := false; if isInArray then Result := Result + AChar + ' ' else Result := Result + AChar + EOL + LeftIndent; end; '}' : if not isInString then begin Delete(LeftIndent, 1, Length(AIndent)); if not isEOL then Result := Result + EOL; Result := Result + LeftIndent + AChar; end; ':' : if not isInString and (AChar = ':') then Result := Result + AChar + ' '; else begin isEOL := false; Result := Result + AChar; end; end; isEscape := (AChar = '\') and not isEscape; if not isEscape and (AChar = '"') then isInString := not isInString; if not isEscape and (AChar = '[') then isInArray:=True; if not isEscape and (AChar = ']') then isInArray:=False; end; end; Результат налицо: { "Rig": { "Name": "node07", "Account": "3DQ9fRMVfxHaT7noy7molmuhlCI3RQkxt2y8BB", "PowerCost": [4.43, 4.43, 4.43, 4.43, 4.43, 4.43, 4.43, 4.43, 4.43, 4.43, 4.43, 4.43, 4.43, 4.43, 4.43, 4.43, 4.43, 4.43, 4.43, 4.43, 4.43, 4.43, 4.43, 4.43] }, "ExcavatorInstance": { "Host": "192.168.0.156", "Port": 38080, "APIToken": "asevsdrbdrtnetyjer34yb435t", "ConnectionType": "HTTP" }, "Devices": { "DeviceType": "", "UseDevices": [0, 1, 2, 3, 4] }, "Algorithms": { "cryptonight": { "Enable": true, "Devices_TDP_CoreDelta_MemoryDelta": [108, 150, 500], "WorkerPerDevice": 1, "WorkerParameters": [32, "M=2", 876], "Speed": 1506138068.81243, "Power": 851 }, "lbry": { "Enable": true, "Devices_TDP_CoreDelta_MemoryDelta": [95, 120, -1000], "WorkerPerDevice": 1, "WorkerParameters": [], "Speed": 1506138068.81243, "Power": 851 }, "pascal": { "Enable": true, "Devices_TDP_CoreDelta_MemoryDelta": [108, 150, 500], "WorkerPerDevice": 1, "WorkerParameters": [], "Speed": 1506138068.81243, "Power": 851 }, "decred": { "Enable": true, "Devices_TDP_CoreDelta_MemoryDelta": [108, 150, 500], "WorkerPerDevice": 1, "WorkerParameters": [], "Speed": 1506138068.81243, "Power": 851 }, "neoscrypt": { "Enable": true, "Devices_TDP_CoreDelta_MemoryDelta": [108, 150, 500], "WorkerPerDevice": 1, "WorkerParameters": [], "Speed": 1506138068.81243, "Power": 851 }, "daggerhashimoto": { "Enable": true, "Devices_TDP_CoreDelta_MemoryDelta": [108, 150, 500], "WorkerPerDevice": 1, "WorkerParameters": [], "Speed": 1506138068.81243, "Power": 851 }, "daggerhashimoto_decred": { "Enable": true, "Devices_TDP_CoreDelta_MemoryDelta": [108, 150, 500], "WorkerPerDevice": 1, "WorkerParameters": [], "Speed": 1506138068.81243, "Power": 851 }, "daggerhashimoto_sia": { "Enable": true, "Devices_TDP_CoreDelta_MemoryDelta": [108, 150, 500], "WorkerPerDevice": 1, "WorkerParameters": [], "Speed": 1506138068.81243, "Power": 851 }, "lyra2rev2": { "Enable": true, "Devices_TDP_CoreDelta_MemoryDelta": [95, 120, -1000], "WorkerPerDevice": 1, "WorkerParameters": [], "Speed": 1506138068.81243, "Power": 851 }, "blake2s": { "Enable": true, "Devices_TDP_CoreDelta_MemoryDelta": [108, 150, 500], "WorkerPerDevice": 1, "WorkerParameters": [], "Speed": 1506138068.81243, "Power": 851 }, "equihash": { "Enable": true, "Devices_TDP_CoreDelta_MemoryDelta": [108, 150, 500], "WorkerPerDevice": 1, "WorkerParameters": ["2", "M=1", "676556"], "Speed": 1506138068.81243, "Power": 851 }, "daggerhashimoto_pascal": { "Enable": true, "Devices_TDP_CoreDelta_MemoryDelta": [108, 150, 500], "WorkerPerDevice": 1, "WorkerParameters": [], "Speed": 1506138068.81243, "Power": 851 }, "keccak": { "Enable": true, "Devices_TDP_CoreDelta_MemoryDelta": [108, 150, 500], "WorkerPerDevice": 1, "WorkerParameters": [], "Speed": 1506138068.81243, "Power": 851 }, "sia": { "Enable": true, "Devices_TDP_CoreDelta_MemoryDelta": [108, 150, 500], "WorkerPerDevice": 1, "WorkerParameters": [], "Speed": 1506138068.81243, "Power": 851 } } } Конкретно в текущем случае, массивы мне нужны были в одну строку. Кому понадобиться иное - закомментируйте последние 4 строки.
  47. 1 балл
    ENERGY

    Поиск контакта по номеру

    Большое Вам спасибо Ярослав, за то что вносите большой вклад в развитие Mobile Delphi. Очень мало примеров и документации (причем на любом языке) по этому поводу, ваш сайт очень выручает. Я попробовал демку c:\Program Files (x86)\Embarcadero\Studio\18.0\Samples\Object Pascal\Multi-Device Samples\Device Sensors and Services\Address Book\Contacts\Contacts_Delphi.dproj с TAddressBook . Delphi 10 upd 1 Запускал на телефоне HTC - ни один контакт не загрузился - просто пустой список. UPD: Вместо AddressBook1.AllContacts(Source, Contacts); Нужно AddressBook1.AllContacts(nil, Contacts); тогда загружает все контакты. Вся проблема в том, что он считывает сразу все контакты. А мне это не нужно. Лучше использовать код для поиска конкретного номера, прекрасно находит работает (также работает и вставка нового контакта, здесь описал http://stackoverflow.com/questions/29782398/insert-contacts-in-android-with-delphi/41294891#41294891): function TCore.IsNumberInAddressBook(const aNumber: string): boolean; var vCursor: JCursor; vQueryStr: string; begin Result := false; // will be: data1 LIKE '%+380501960000%' (with quotes) vQueryStr := JStringToString( TJCommonDataKinds_Phone.JavaClass.NORMALIZED_NUMBER) + ' LIKE ''%' + aNumber + '%'''; vCursor := TAndroidHelper.Activity.getContentResolver.query( TJCommonDataKinds_Phone.JavaClass.CONTENT_URI, nil, //projection String: A list of which columns to return. Passing null will return all columns, which is inefficient. StringToJString(vQueryStr), // String: A filter declaring which rows to return, formatted as an SQL WHERE clause (excluding the WHERE itself). Passing null will return all rows for the given URI. nil, nil); // Query help: https://developer.android.com/reference/android/content/ContentResolver.html#query(android.net.Uri, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String) if vCursor <> nil then try Result := vCursor.getCount > 0; finally vCursor.close; end; end; // а это может пригодится while (cursor.moveToNext) do begin lbContactsList.Text := JStringToString(cursor.getString( cursor.getColumnIndex(StringToJString('DISPLAY_NAME')))); lbContactsList.Tag := cursor.getInt(cursor.getColumnIndex(StringToJString('_ID'))); // ListBox1.AddObject(ListBoxItem); end; UPD: AllContacts находится в \source\fmx\FMX.AddressBook.Android.pas А вообще для самообразования хотелось бы узнать как вызвать ContactsContract.PhoneLookup.CONTENT_FILTER_URI И что это за конструкция такая Uri.withAppendedPath, ведь в будущем наверняка с ней придется сталкиваться. Если вы в курсе, расскажите пожалуйста.
  48. 1 балл
    Rusland

    TMapsEngine

    enatechno, kitty спасибо. Уже выложили. Даже ZuBy там засветился c TMapsEngine
  49. 1 балл
    Все получилось, спасибо!) Кое-что изменил, и вышло вот так: var intent:Jintent; begin Intent := TJIntent.Create; Intent.setAction(TJIntent.JavaClass.ACTION_VIEW); Intent.setDataAndType(StrToJuri(url),StringToJString('image/jpeg')); SharedActivity.startActivity(Intent); end; где URL - адрес моей картинки в интернете.
  50. 1 балл
    За постоянное нарушение этих правил пользователь может быть забанен, в том числе по адресу IP.Если тема оформлена не правильно, то она будет закрыта. 1. Общие правила Перед тем как создать тему по вашему вопросу, воспользуйтесь поиском по форуму. Форум рассчитан на консультирования применения FireMonkey, решения прикладных задач с использованием FireMonkey. Запрещено публиковать найденные ошибки. Для публикации и решения вопросов ошибок FMX существует специальный ресурс Embarcadero Quality Central. Запрещается обсуждение вопросов не связанных с разработкой и FireMonkey Запрещается использовать нецензурные выражения в тексте и заголовке сообщений 2. Создание темы Одна тема — один вопрос. Два вопроса в одной теме задавать запрещено. Запрещено создавать несколько тем для одного вопроса. Тема должна быть размещена в наиболее подходящем для нее по смыслу разделе. Если такового не имеется, то размещать тему на свое усмотрение. 2.1 Каким должен быть заголовок темы? Вопрос должен быть сформулирован в заголовке темы. Заголовок темы должен содержать не менее 4 слов. Заголовок темы должен формулировать вопрос как можно подробнее. 2.2. Каким должен быть текст вопроса? Текст вопроса нужно начать с указания используемой версии RAD Studio, Версии ОС и модель устройства (если речь идет о мобильной разработке) Текст темы должен максимально подробно описывать суть вопроса. Текст темы должен по возможности содержать иллюстрации. Иллюстрации должны быть не от балды, а иллюстрировать текущее состояние вопроса: то есть, наглядно показывать факт существования описанного поведения. Если ваш вопрос касается конкретного случая разработки, нужно прикрепить проект (только исходные коды в zip архиве) к сообщению. Вставляя код в текст темы, позаботьтесь о том, чтобы он соответствовал стандарту «Руководство по оформлению кода на Pascal» (это можно сделать, при помощи средств автоматического форматирования кода, которые есть в RAD Studio Edit -> Format Source или Ctrl + D), а также не забудьте использовать тег «Код» при оформлении кода в сообщении. 3. Ответы в темы Задавать свой вопрос в чужой теме можно только в случае если ваш вопрос совпадает с вопросом в теме. Отвечать можно на любые темы. При ответе старайтесь подробно описывать решение вопроса. Избегайте лишних сообщений не касающихся решения вопроса.
Эта таблица лидеров рассчитана в Москва/GMT+03:00