Jump to content

AlanScottAgain

Members
  • Content Count

    35
  • Joined

  • Last visited

Everything posted by AlanScottAgain

  1. AlanScottAgain

    GrijjyCloudLogger & D12

    Hi, Given that debugging on iOS17 is not possible at this moment. I was looking at the Grijjy CloudLogger as an option. It hasn't been updated in a while and wondered if anyone had it running under D12 and iOS? Thanks Alan
  2. AlanScottAgain

    GrijjyCloudLogger & D12

    Hi Jon, Yes I have. I had issues that look like version incompatibility with sdks. I did not investigate further as Dave's hint to use the Console on iOS was perfect.
  3. Hi I'm trying to use SQLite with FDAC using Dynamic loading on Android and iOS. Unfortunately I'm not getting very far. Currently testing on Android 64. I'm getting an error: Project TestFDACDynamic.apk raised exception class EFDException with message '[FireDAC][Phys][SQLite]-314. Cannot load vendor library [/data/user/0/com.embarcadero.TestFDACDynamic/files/libsqliteX.so]. Hint: check it is in the PATH or application EXE directories, and has x86 bitness.'. libsqliteX.so is downloaded from the sqlite download page. and I deploy to .\assets\internal\. I have tried with other libsqlite.so's with the same issue. Am I using the wrong file? Or the wrong location? Many thanks for any advice. Alan
  4. AlanScottAgain

    Can not debug on iOS

    Hi I can compile and my app appears on the iPhone and I can run it. But I can't seem to step trough the code. However, I can step though code if I deploy to the simulator. I have read the documentation, but it hasn't helped. What could I be doing wrong? Thanks Alan
  5. AlanScottAgain

    Can not debug on iOS

    OK thanks
  6. AlanScottAgain

    Can not debug on iOS

    Thanks Dave, I'm running 16.61?
  7. AlanScottAgain

    RSA encryption on iOS

    Hi How would I use RSA encryption on iOS? Is there a built in library or an external one that works on iOS? Thanks Alan
  8. AlanScottAgain

    Firebase options?

    FB4D I've had no issues in VCL
  9. AlanScottAgain

    GetCryptLibHandle Issue on ios

    Hi I'm trying to compile FB4D for ios. FB4D is dependent the JOSE library. On Android everything is fine. On ios I get: [DCC Error] JOSE.OpenSSL.Headers.pas(168): E2003 Undeclared identifier: 'GetCryptLibHandle' and the relevant code is IFDEFed out due to - {$IFNDEF STATICLOAD_OPENSSL} How can I get this to work on iOS, please. Thanks Alan PS https://github.com/paolo-rossi/delphi-jose-jwt/issues/26
  10. AlanScottAgain

    GetCryptLibHandle Issue on ios

    Thanks Dave, I had not seen the FB4D Docs about iOS deployment. I will work through that and see if I can get a compile.
  11. AlanScottAgain

    Colored Notification Icon

    Hi Apps like YouTube have colored notification icons - but even when set my image the notification section to a colored png it still appears white. How can I have my icon show colored? Thanks Alan
  12. AlanScottAgain

    Colored Notification Icon

    Thank you for the detailed answers. I think I was confused because the default notification icon is colored!
  13. AlanScottAgain

    obb file location

    Hi Is there an equivalent to TPath.GetHomePath for the obb directory? I want to deploy some video files in an APK expansion pack. But not sure how to find where they will be installed to. Thanks Alan
  14. AlanScottAgain

    obb file location

    thank you
  15. AlanScottAgain

    Advice, Please - Notifications

    Hi, This is my scenario.... I have an exercise app that will be able to set reminders to do the exercise daily up to 2 times a day. I need to create a notification that will remind the user to the exercise. Taping the reminder should open the app - to record the exercise has been done. The reminders will need to be active after a reboot and work on both Android and iPhone. After reading lots of articles.. I'm completely confused and would like some pointers, Please. Thanks Alan PS it would be good if I could send a notification if the exercise has not been done/logged on the app.
  16. AlanScottAgain

    Advice, Please - Notifications

    Thank you David, Do I need to create a service app to read the data and recreate the notification after start up? Would that work on iOS?
  17. AlanScottAgain

    FMX mobile database

    Why not use FireBase an the the great FB4D 🙂
  18. AlanScottAgain

    Long Tap triggers tap

    Hi, I couldn't find any information this. When I capture a long tap - I get the tap event fired as well. Is this right? I want to set a value on tap and clear it on long tap. Its messy at the moment with the events being called in sequence. Thanks Alan
  19. AlanScottAgain

    Long Tap triggers tap

    Thanks, I tried the counter but it says its only being called once. However the dialogs still pop up more than once. There is no other code in the Test project, Just the onTap and onGesture. If I had hair I'd be pulling it out 😞 I have attached a small video. Xrecorder 18042023 154853.mp4
  20. AlanScottAgain

    Long Tap triggers tap

    Many thanks I was aware of the demos 😉 And am doing similar. It seems that if I use ShowMessage to display the event action, something must happen with the message queue as I get multiple showmesage popups. if I just update a label - all works fine. this simple code generates multiple popups for me? procedure TForm1.FormGesture(Sender: TObject; const EventInfo: TGestureEventInfo; var Handled: Boolean); begin if EventInfo.GestureID = igiLongTap then begin Label1.Text:= 'Long Tap'; TDialogService.MessageDialog('Did you mean to long press',TMsgDlgType.mtInformation, [TMsgDlgBtn.mbYes, TMsgDlgBtn.mbNo], TMsgDlgBtn.mbYes,0, procedure(const AResult: TModalResult) begin if AResult = mrYes then ShowMessage('YES') else ShowMessage('you have cancel the operation'); end ); end; end; procedure TForm1.FormTap(Sender: TObject; const Point: TPointF); begin Label1.Text:= 'Tap'; end;
  21. AlanScottAgain

    Cross Platform Reminder

    Hi I'm creating a simple exercise app, and I want the user to be able to set a reminder to do the exercise. What's be the recommended way to do this and have it work across Android and iPhone? I have considered creating calendar entries ( would have to be platform specific) or creating a background app that tracks the reminder (more generic). Unsure if these are the way to go or is there a better way? Thanks Alan
  22. AlanScottAgain

    display hint

    Hi I have a gauge that draw I on a Skia paintbox. I can move the gauge with the mouse. 0-100 SkPaintBox1.Hint:= IntToStr(Position); SkPaintBox1.ShowHint:= True; Shows the hint but not as the mouse moves. How can I show a hint to display the current value as the mouse moves to update the gauge? Do I need to create my own hint window? Thanks Alan
  23. AlanScottAgain

    display hint

    Thank you I will try the TApplication.. method
  24. I know I should have done it sooner - I've been putting it off too long. Thanks to PB for giving me a push to do this, in another tread. So I've stripped down my TDrawingObject and TDrawingObjectList Classes to show what I have and what I'm trying to acheive : Type TDrawingObjectType = (doChild, doBackground); TDrawingObjectsList = Class; //Forward Declaration TDrawingObject = Class Private FObjectType: TDrawingObjectType; FDrawingObjectsList: TDrawingObjectsList; Public Constructor Create(AObjectType: TDrawingObjectType); Destructor Destroy; Property ObjectType: TDrawingObjectType Read FObjectType Write FObjectType; Property DrawingObjectsList: TDrawingObjectsList Read FDrawingObjectsList Write FDrawingObjectsList; End; TDrawingObjectsList = Class(TObjectList<TDrawingObject>) Private FOwnsObjects: Boolean; Protected Function GetItem(Index: Integer): TDrawingObject; Procedure SetItem(Index: Integer; AObject: TDrawingObject); Public Procedure Draw(ACanvas: IskCanvas); Property OwnsObjects: Boolean Read FOwnsObjects Write FOwnsObjects; Property Items[Index: Integer]: TDrawingObject Read GetItem Write SetItem; default; Procedure LoadDrawingObjects; End; I'm trying to implement interfaces for these objects The code below looks pretty good at least I don't a lot of errors: I have two main questions at the moment: In the TDrawingListClass declaration I used to have TDrawingObjectsList = Class(TObjectList<TDrawingObject>) to type cast the list. How do I achieve the same with the class/interface declaration? TDrawingObjectsList = class(TInterfacedObject, IDrawingObjectList, TObjectList<TDrawingObject>) is not right. In the class constructs I have kept the interface references eg: property DrawingObjectList: IDrawingObjectList read GetDrawingObjectList write SetDrawingObjectList; Is this correct? type TDrawingObjectType = (doChild, doBackground); IDrawingObjectList = interface; // forward declaration IDrawingObject = interface(IInterface) ['{A8701C68-51FC-4087-8C30-E3CA4C7C1D8E}'] function GetDrawingObjectType: TDrawingObjectType; procedure SetDrawingObjectType(ADrawingObjectType: TDrawingObjectType); function GetDrawingObjectList: IDrawingObjectList; procedure SetDrawingObjectList(ADrawingObjectList: IDrawingObjectList); property ObjectType: TDrawingObjectType read GetDrawingObjectType write SetDrawingObjectType; property DrawingObjectList: IDrawingObjectList read GetDrawingObjectList write SetDrawingObjectList; end; TDrawingObject = class(TInterfacedObject, IDrawingObject) function GetDrawingObjectType: TDrawingObjectType; procedure SetDrawingObjectType(ADrawingObjectType: TDrawingObjectType); function GetDrawingObjectList: IDrawingObjectList; procedure SetDrawingObjectList(ADrawingObjectList: IDrawingObjectList); property ObjectType: TDrawingObjectType read GetDrawingObjectType write SetDrawingObjectType; property DrawingObjectList: IDrawingObjectList read GetDrawingObjectList write SetDrawingObjectList; end; IDrawingObjectList = interface(IInterface) ['{9D2C916D-19F0-49B2-93C6-B84592442057}'] Private function GetOwnsObject: Boolean; procedure SetOwnsObject(AOwnsObject: Boolean); property OwnsObjects: Boolean read GetOwnsObject write SetOwnsObject; function GetItem(Index: Integer): IDrawingObject; procedure SetItem(Index: Integer; AObject: IDrawingObject); Public Constructor Create(AObjectType: TDrawingObjectType); Destructor Destroy; property Items[Index: Integer]: IDrawingObject read GetItem Write SetItem; procedure Draw(ACanvas: ISkCanvas); procedure LoadDrawingObjects; end; TDrawingObjectsList = class(TInterfacedObject, IDrawingObjectList) private FOwnsObjects: Boolean; function GetOwnsObject: Boolean; procedure SetOwnsObject(AOwnsObject: Boolean); property OwnsObjects: Boolean read GetOwnsObject write SetOwnsObject; function GetItem(Index: Integer): IDrawingObject; procedure SetItem(Index: Integer; AObject: IDrawingObject); public property Items[Index: Integer]: IDrawingObject read GetItem write SetItem; procedure Draw(ACanvas: ISkCanvas); procedure LoadDrawingObjects; end; Thanks Alan
  25. AlanScottAgain

    Interfaces - Time to face my ignorance.

    Thanks for all the feedback. I think that interfaces at this stage is overkill. As a result of the comments I have cleaned up the code and taken the advice on object lifetime and ownership.
×