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

OnePeople

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

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

  • Посещение

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

    55

Весь контент OnePeople

  1. https://github.com/Embarcadero/RADStudio11Demos/blob/main/Object Pascal/Multi-Device Samples/Device Sensors and Services/Foreground Location Tracking
  2. Для доступа к памяти вам нужно запросить необходимые разрешения в реальном времени, на форуме куча примеров
  3. Я не знаю но думаю так по памяти, в AndroidManifest.template: targetSdk=30.
  4. Закройте проект. Попробуйте открыть файл *.fmx формы в проводнике, найти ваш MainMenu22 и удалить там строчку ShortCut. Затем откройте проект.
  5. Вы можете перемещаться по этим "квадратикам" клавишей Tab - соответственно вперед, удерживая Shift нажимая Tab - соответственно назад. Удобна например когда редактируемых переменных несколько например попробуйте для for также нажать пробел и по перемещаться!
  6. Ну так Application.ProcessMessages в Андроиде не работает так то
  7. Так и написанное в студии не будет работать если изменилось API androida. К каждой новой версии все равно надо подготавливать свое приложение хоть в студии, хоть в Делфи, хоть где то ещё.
  8. Все верно, но есть ещё доступ к устройствам, блютуз, вай фай, доступ к уведомлениям и т.д., вот были бы методы управления не зависимые от платформы, а то на одной платформе нужно так с ними взаимодействовать, на другой по другому.( Имею ввиду почему это не обернуть, сделать например WifiUtils, BTUtils, NotificationUtils). Вы пишете один код, а в нутри в зависимости от платформы код меняется, хоть самому пиши)
  9. Да можно под Андроид нормально писать, callback'ов не хватает единственное, а дальше все хорошо работает. Если как правильно тут написали не трогают кроссплатформенность, этим и не пахнет, для каждой платформы все равно приходиться много кода разного писать( Моё мнение!
  10. DialogService: IFMXDialogService; FMargin, FMinMargin: TRect; FPaperSize: TPointf; FUnits: TPageMeasureUnits; FOptions : TPageSetupDialogOptions; begin if TPlatformServices.Current.SupportsPlatformService(IFMXDialogService, DialogService) then DialogService.PageSetupGetDefaults(FMargin, FMinMargin, FPaperSize, FUnits, FOptions); Text8.Text := FMinMargin.Left.ToString + ' ' + FMinMargin.Top.ToString; А так сколько показывает?
  11. ну так у вас 10 раз inc(pc) for i := 0 to 9 do begin for j := 0 to 5000 do for k := 0 to 10000 do begin a:=a+k/1000+k/500; end; inc(pc);
  12. uses PrinterAPI; var FkPrinter: TMyPrinter; begin FkPrinter:=TMyPrinter.Create(Printer.Printers[cbPrinters.ItemIndex].Device,true); OffsetX := FkPrinter.GetOffsetX; OffsetY := FkPrinter.GetOffsetY; Printer.Canvas.Offset := TPoint.Create(OffsetX , OffsetY ); PrinterAPI.rar
  13. PHYSICALOFFSETX For printing devices: the distance from the left edge of the physical page to the left edge of the printable area, in device units. For example, a printer set to print at 600 dpi on 8.5-by-11-inch paper, that cannot print on the leftmost 0.25-inch of paper, has a horizontal physical offset of 150 device units. PHYSICALOFFSETY For printing devices: the distance from the top edge of the physical page to the top edge of the printable area, in device units. For example, a printer set to print at 600 dpi on 8.5-by-11-inch paper, that cannot print on the topmost 0.5-inch of paper, has a vertical physical offset of 300 device units.
  14. Вы печатаете с начала листа, но существуют так называемые "аппаратные поля" или "физические поля", в зависимости от возможностей принтера: это область, недоступная для печати, вокруг бумаги; то есть, если вы нарисуете что-то в этой области, оно не будет напечатано - эти поля зависят от принтера, и в некоторых случаях можно получить значения этих полей с помощью вызова LeftSpace := GetDeviceCaps(Printer.Handle, PHYSICALOFFSETX); TopSpace := GetDeviceCaps(Printer.Handle, PHYSICALOFFSETY);
  15. Можно не писать в startupcopy.pas есть методы обновления ассетов. Самому лень писать)))) I feel that files that need to be deployed are files that should not and need not be changed by the application. They are resources like images. If an application changes a file, it does so with intent. The user via the developer wanted it that way. Changing it back through an update causes data loss. As a consequence all files that could be subject to change should not be deployed but generated when used.
  16. Библиотеки которые вы задеплоите можно использовать, а загруженные в процессе работы приложения нельзя!
  17. procedure TForm1.UpdateAsset(AssetName, FilePath: String); var inputStream: JInputStream; FileOutputStream: JFileOutputStream; WData: TJavaArray<Byte>; LData: Integer; begin try InputStream := TAndroidHelper.Context.getAssets.open(StringToJString(AssetName)); except exit; end; try FileOutputStream := TJFileOutputStream.JavaClass.init(StringToJString(FilePath)); except exit; end; WData := TJavaArray<Byte>.Create(4096); repeat try LData := InputStream.read(WData); except LData := -1; end; if LData <> -1 then begin FileOutputStream.write(WData, 0, LData); end; until (LData = -1) or (LData = 0); FileOutputStream.flush; FileOutputStream.close; inputStream.close; end; Обновление файла из assets в папку с программой Пользоваться так проверяете при Form.Create что версия новая и вызываете UpdateAsset('internal/base.db', ApplicationPath + 'base.db');
  18. Если будете загружать файл в deployment тогда ваша база будет здесь Для remote path: assets\internal TPath.Combine(TPath.GetDocumentsPath, 'filename') { Internal } Для remote path: assets TPath.Combine(TPath.GetPublicPath, 'filename') { External } Есть же в конце то концов https://docwiki.embarcadero.com/RADStudio/Sydney/en/Creating_an_Android_App#Loading_and_Deploying_Files
  19. Ну согласно перевода вы не можете запускать исполняемые файлы из папки своего приложения, и вы не можете изменять код библиотек .so из своего приложения. Оно вам зачем?
×
×
  • Создать...