Jump to content

Dave Nottage

Members
  • Content Count

    1296
  • Joined

  • Last visited

  • Days Won

    29

Everything posted by Dave Nottage

  1. Dave Nottage

    PDF view on Android

    This works for 10.3.x if you have some kind of PDF viewer installed on the device: uses Androidapi.JNI.GraphicsContentViewText, Androidapi.Helpers, Androidapi.JNI.Net; procedure OpenPDF(const AFileName: string); var LIntent: JIntent; LUri: Jnet_Uri; begin LUri := TAndroidHelper.JFileToJURI(TJFile.JavaClass.init(StringToJString(AFileName))); LIntent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_VIEW); LIntent.setDataAndType(LUri, StringToJString('application/pdf')); LIntent.setFlags(TJIntent.JavaClass.FLAG_GRANT_READ_URI_PERMISSION); TAndroidHelper.Activity.startActivity(LIntent); end;
  2. Unless your app is called "Facebook", "Twitter", or "Instagram", yeah 😉
  3. Dave Nottage

    Screenshots for new app

    How do you manage that? Thanks for the link!
  4. No, I was specifically referring to Beacons. I expect the BLE issue is separate. Now I'm confused: does it work, and if so, only with both?
  5. Dave Nottage

    New project with embedded browser

    I haven't had the need to, however I might take a look at it I'll work on sharing the parts that I can share.
  6. I don't understand how you came to that conclusion. As far as I know, they haven't Yes, with the changes I proposed in the QP report.
  7. Dave Nottage

    New project with embedded browser

    A while ago I was looking for something that's cross-platform (Windows and macOS) so decided to check out CE4. For me, it was extremely difficult to work with, if the goal is to use it for automation. I ended up using TWebBrowser in FMX and wrote a bunch of helper methods for both platforms, one of the most critical being: // macOS class function THTMLHelper.GetBrowserDocument(const ABrowser: TObject): DOMDocument; var LWebView: WebView; begin Result := nil; if Supports(ABrowser, WebView, LWebView) then Result := LWebView.mainFrame.DOMDocument; end; // Windows class function THTMLHelper.GetBrowserDocument(const ABrowser: TObject): IHTMLDocument3; var LBrowser: IWebBrowser; begin if Supports(ABrowser, IWebBrowser, LBrowser) then Supports(LBrowser.Document, IHTMLDocument3, Result); end;
  8. They haven't: there is critical code missing that allows them to work in the background: https://quality.embarcadero.com/browse/RSP-21460
  9. Dave Nottage

    Install Android SDK manually?

    http://delphi.org/2019/06/manually-installing-android-sdk-ndk-and-java-for-firemonkey-development/
  10. Dave Nottage

    DelphiTwain on 64-bit

    I've finally managed to put together a test case, which is here: https://github.com/DelphiWorlds/MiscStuff/blob/master/Test/RDSTwainTestCase.zip
  11. If it's other than in the project folder, you need to set the Source path in the Debugger section of the Project Options:
  12. Works OK here. My steps: 1. Create a blank FMX app, change platform to OSX 64-bit 2. Add a button and memo 3. Add the code you described 4. Save the project 5. Open FMX.Memo.pas from the source, and save it in the same folder as the project 6. Put a breakpoint in TCustomMemo.GetText 7. Close the file in the editor 8. Run the app with debugging 9. Click the button. IDE opens the local copy, as expected, and stops at the expected breakpoint
  13. Dave Nottage

    [bug] Camera + Effects

    A stack trace would be more helpful. It should appear after you click "Break". If not, click View > Debug Windows > Call Stack or just use Ctrl-Alt-S
  14. Those paths look suspiciously like mine in Kastri Free. What exactly are you compiling? I suggest checking whether you have a unit that references the DLL without having a conditional define, or that the path to it is included for macOS when it should not be
  15. Dave Nottage

    Android, how to call a TJIntent

    If you are using Delphi 10.3, for this situation you do not need to modify AndroidManifest.template.xml yourself. Unless you have other customizations to it, please delete it (or remove your <provider> changes). Go to the Project Options, select Application > Entitlement List and check the Secure File Sharing checkbox.
  16. Dave Nottage

    Android 8.0 Permissions errors using Delphi Rio 10.3

    Right; that would be because, as I said earlier, it is "shown only when permissions are not granted by the user"
  17. Dave Nottage

    Android 8.0 Permissions errors using Delphi Rio 10.3

    You need to trace through the TAndroidPermissionsService.InternalRequestPermissions method in the System.Android.Permissions unit. Note that the rationale is shown only when permissions are not granted by the user.
  18. I found out from Dmitry Arefiev. It really should have been included in the release notes.
  19. libcgsqlite3.dylib is now a "featured" file. Go to Deployment Manager and use the Add Featured Files to add it.
  20. Dave Nottage

    Refer to Form Control without using the Form unit?

    FindComponent returns nil if you misspell the name, so just check for nil?
  21. Dave Nottage

    DelphiTwain on 64-bit

    The difference is it is loaded by RDS. I could put together code that just replicates the problem, if you're able to help with it
  22. Dave Nottage

    DelphiTwain on 64-bit

    Tested this again today. Using TransferMode := ttmMemory, ScanTest.bmp is the result using the "standalone" DLL, and ScanTestA.bmp is the result using the "RDS" DLL. ScanTest.bmp ScanTestA.bmp
  23. Dave Nottage

    DelphiTwain on 64-bit

    Yes, with a different failure; can't recall exactly. I'll check again tomorrow.
  24. Dave Nottage

    DelphiTwain on 64-bit

    You're right, it should be, and I changed it to THandle (same as used by GlobalLock) for hNative in the TransferImages method, and the Handle parameter in the ReadNative method, but to no avail - same problem. The handle numbers are larger, e.g: In the "standalone" DLL: 57278728 (36A0108) In the "RDS" DLL: 2333671976 (8B190228) and 1541866024 (5BE70228)
×