Jump to content

Dave Nottage

Members
  • Content Count

    1607
  • Joined

  • Last visited

  • Days Won

    36

Everything posted by Dave Nottage

  1. Dave Nottage

    Delphi 11.2 - Error compiling for IOS

    It would have helped to mention that you're compiling for iOS Simulator (i.e not just iOS) Please refer to: https://blogs.embarcadero.com/rad-studio-11-2-alexandria-patch-1-available/
  2. Dave Nottage

    Delphi 11.2 - Error compiling for IOS

    Either your installation of Delphi was incomplete, or the IDE library paths are invalid for iOS Device 64-bit. They should look something like this: At least including $(BDSLIB)\$(Platform)\release, which is where libsqlite.a is located
  3. Dave Nottage

    TopCode Java Library in Delphi

    This is the output from Java2OP: WebCamSample: the parent class (javax.swing.JPanel) is not found java.awt.Graphics: not found java.awt.Graphics2D: not found java.awt.event.ActionEvent: not found java.awt.event.KeyEvent: not found java.awt.event.MouseEvent: not found java.awt.event.WindowEvent: not found java.awt.geom.AffineTransform: not found java.awt.image.BufferedImage: not found java.awt.print.PageFormat: not found javax.swing.JFrame: not found javax.swing.JPanel: not found javax.swing.Timer: not found topcodes.DebugWindow: the parent class (javax.swing.JPanel) is not found topcodes.TopCodePrinter: the parent class (javax.swing.JPanel) is not found So presumably you'll need to include the relevant jars that include javax.swing and java.awt, when importing
  4. Are you using TLocationSensor? That's where it was fixed. If you're attempting to use JLocationListener on its own, you'll need to modify the class that implements it, such as in the Unit14.pas attachment, here: https://quality.embarcadero.com/browse/RSP-39566
  5. Yes, the issue is fixed in 11.1, so 11.2 also has the fix. It's only mandatory if publishing to the Play Store. It should report the line/char that it fails on, so you should be able to tell where the problem is
  6. Dave Nottage

    Any tip with Datasnap Rest ISAPI + TDataModule

    This description is too vague. Please be specific about what the issue is, e.g. provide exact error messages. Are you able to create a reproducible example?
  7. Dave Nottage

    SSL in IOS Simulator

    Please refer to this QP report: https://quality.embarcadero.com/browse/RSP-39702
  8. Dave Nottage

    TidHTTP under FMX for android does not work

    Smartphone is a general term that could refer to Android or iOS devices (being the most common types of smartphone). If you require help for the device you're referring to, please be specific.
  9. Dave Nottage

    TidHTTP under FMX for android does not work

    Up until a few months ago, I was using them (for my client) on Android devices with version 4.4. Exactly.
  10. Dave Nottage

    Change of coding style/structure..

    No comment. Oh wait.. that was a comment 😉
  11. Dave Nottage

    TidHTTP under FMX for android does not work

    Please refer to this SO link: https://stackoverflow.com/questions/37105600/error-could-not-load-ssl-library-on-android-with-tidhttp
  12. Dave Nottage

    Save MapView image to bitmap

    I'm not sure what is unclear about it. The method takes a single parameter that is an object method with a single parameter that is a TBitmap: https://docwiki.embarcadero.com/Libraries/Alexandria/en/FMX.Maps.TMapScreenshotRecipient i.e. you would declare a method on an object (such as the form that contains the MapView), and pass that when calling Snapshot, e.g: procedure TForm1.SnapshotRecipient(const ABitmap: TBitmap); begin // Do whatever you will with ABitmap, here end; ..and call Snapshot like this, for example: MapView1.Snapshot(SnapshotRecipient)
  13. Dave Nottage

    Save MapView image to bitmap

    You need to use the Snapshot method: https://docwiki.embarcadero.com/Libraries/Alexandria/en/FMX.Maps.TCustomMapView.Snapshot
  14. Dave Nottage

    11.2 Patch 1 is out

    I agree.. it's rather odd to receive promotional emails but not for notifications about updates/patches.
  15. Dave Nottage

    Delphi 11.2: Android Debug Monitor no longer works

    Monitor is deprecated, and does not support Java 9, which is what the default JDK (that Delphi installs) uses. There are alternative logcat viewer apps, such as Device Lens (which I created), and there are some others listed here.
  16. Dave Nottage

    Ios Notification Error

    Does the App ID you are using have Push Notification entitlement?: You set this on the Apple Developer website. If you have not already set this entitlement, after you do so you will need to recreate the Provisioning Profile
  17. Dave Nottage

    Kastri cross-platform library

    Well, that's the aim. It's one of either stick with the batch files (which is complicated to use), create a completely external tool (less complicated), or include it in an expert such as Codex (hopefully fairly simple to use). The aim is also to have the process generic so that it can be applied to other projects when needed. There's a link to a Quality Portal report in the readme which is essentially asking for the process to be included in Delphi itself.
  18. Dave Nottage

    Kastri cross-platform library

    You can be a guinea pig for this potential fix: 🙂 https://github.com/DelphiWorlds/Playground/tree/main/Demos/Biometric Please read the readme for details.
  19. Dave Nottage

    Detect shake gesture on IOS

    I've created a gist here, but also including it in this post: unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls, FMX.Controls.Presentation, System.TypInfo, Macapi.ObjectiveC, Macapi.Helpers, iOSapi.UIKit, iOSapi.Foundation; type IShakeView = interface(UIView) ['{21B0BCE6-8D07-40BA-943C-DC4B1A99D3CA}'] function canBecomeFirstResponder: Boolean; cdecl; procedure motionBegan(motion: UIEventSubtype; withEvent: UIEvent); cdecl; procedure motionEnded(motion: UIEventSubtype; withEvent: UIEvent); cdecl; end; TShakeView = class(TOCLocal) private FOnShake: TNotifyEvent; procedure DoShake; function GetView: UIView; procedure InitView; protected function GetObjectiveCClass: PTypeInfo; override; public { IShakeView } function canBecomeFirstResponder: Boolean; cdecl; procedure motionBegan(motion: UIEventSubtype; withEvent: UIEvent); cdecl; procedure motionEnded(motion: UIEventSubtype; withEvent: UIEvent); cdecl; public constructor Create; procedure BecomeFirstResponder; property View: UIView read GetView; property OnShake: TNotifyEvent read FOnShake write FOnShake; end; TForm1 = class(TForm) Label1: TLabel; Button1: TButton; procedure Button1Click(Sender: TObject); private FShakeView: TShakeView; procedure ShakeViewShakeHandler(Sender: TObject); public constructor Create(AOwner: TComponent); override; destructor Destroy; override; end; var Form1: TForm1; implementation {$R *.fmx} uses FMX.Platform.iOS; { TShakeView } constructor TShakeView.Create; begin inherited; InitView; end; procedure TShakeView.InitView; var LView: Pointer; begin // Using a zero-sized rect because this view won't actually be seen LView := GetView.initWithFrame(CGRectFromRect(TRectF.Empty)); if GetObjectID <> LView then UpdateObjectID(LView); end; procedure TShakeView.BecomeFirstResponder; begin GetView.becomeFirstResponder; end; function TShakeView.canBecomeFirstResponder: Boolean; begin Result := True; end; procedure TShakeView.DoShake; begin if Assigned(FOnShake) then FOnShake(Self); end; function TShakeView.GetObjectiveCClass: PTypeInfo; begin Result := TypeInfo(IShakeView); end; function TShakeView.GetView: UIView; begin Result := UIView(Super); end; procedure TShakeView.motionBegan(motion: UIEventSubtype; withEvent: UIEvent); begin // end; procedure TShakeView.motionEnded(motion: UIEventSubtype; withEvent: UIEvent); begin if withEvent.subtype = UIEventSubtypeMotionShake then DoShake; end; { TForm1 } constructor TForm1.Create(AOwner: TComponent); begin inherited; FShakeView := TShakeView.Create; FShakeView.OnShake := ShakeViewShakeHandler; WindowHandleToPlatform(Handle).View.addSubview(FShakeView.View); Button1Click(Button1); end; destructor TForm1.Destroy; begin FShakeView.Free; inherited; end; procedure TForm1.Button1Click(Sender: TObject); begin FShakeView.BecomeFirstResponder; Label1.Text := 'Waiting for shake'; end; procedure TForm1.ShakeViewShakeHandler(Sender: TObject); begin Label1.Text := 'Shaked me!'; end; end.
  20. Dave Nottage

    After Update 11.2 libsqlite.a not found IOS

    Please read Darian's answer. It applies to any of the featured files for simulator.
  21. Dave Nottage

    Enable immersive mode on Android 11

    WindowInsetsControllerCompat is part of AndroidX: https://developer.android.com/reference/androidx/core/view/WindowInsetsControllerCompat Being able to use AndroidX with Delphi 10.4.2 would be an immense task - I started down that road, and ended up abandoning the idea. Delphi 11 supports AndroidX, however you would still need to import (e.g. using Java2OP) the WindowInsetsControllerCompat class as it is not in the Android RTL units in Delphi 11. Given the example you linked to, you'd also need to import ViewCompat, and perhaps other classes as well.
  22. Dave Nottage

    Delphi 11 for iOS 16 ?

    You appear to be using an Intel-based Mac. Support for iOS Simulator is for M1 or M2 based Macs only.
  23. Dave Nottage

    Delphi 11 for iOS 16 ?

    As Steve said, try a blank app. Either way, use a debugger to see if you can find where the crash occurs
  24. Dave Nottage

    Can Rad Studio 11.1 and 11.2 coexist?

    I'm interested to know how, since they both use the same folder, i.e.: Program Files (x86)\Embarcadero\Studio\22.0, same registry root etc
  25. Dave Nottage

    Delphi 11 for iOS 16 ?

    Delphi 11.2, Xcode 14, iOS 16 SDK. PAServer 13.2.11.7
×