Jump to content

Rollo62

Members
  • Content Count

    1671
  • Joined

  • Last visited

  • Days Won

    22

Everything posted by Rollo62

  1. Beside InRange, which I use for >=1-based indices, I have defined my "InIndex" function, which is doing the same comparison, but optimized for 0-based indices, as proposed for example also here. Preferable I am using "InIndex" in my code.
  2. Rollo62

    Examples of Android apps

    Maybe this for a start ?
  3. In PaServer pressing "i", it shows all available IP-Adresses, I'm afraid not all of them are workable, at least for me in a VM.
  4. Rollo62

    Delphi 10.4.2 cannot find new ios provisioning profile

    Try restart PaServer, somtimes this hangs somehow.
  5. Rollo62

    Several F2084 Internal Error on Delphi 10.4.2

    Thats also what I hope. I have never tested if BOM, Spaces or other strange UTF8/16 characters could infuence the compilers behaviour somehow.
  6. Rollo62

    Several F2084 Internal Error on Delphi 10.4.2

    Regarding the sources, I only find these changes under rtl What is strange is that the AppGlue.pas file shows as equal, since the new file has UTF8+BOM and the old file has UTF8. But when compared binary, it looks as if there were more (invisible) code changes in the source file. Left new file, right old file So technically the old and the new file is 1:1 same, only the new contains UTF8+BOM, and I would say it makes not any difference. But why is the new file in the patch then at all, if it doesn't have relevant changes ? Is there any possibility that the "invisible" changes in the file could have an influence on the compiled output ? I have no tool that is really finding the difference well, BeyondCompare lite shows always that its 1:1 same.
  7. Rollo62

    Several F2084 Internal Error on Delphi 10.4.2

    Thats the best way. Anyway, I have checked whats in the ZIP file, it seems that there is no overlapping somewhere in this case. After install I doublechecked that all IDE folders match the patch.ZIP files 1:1, to be sure. I also would recommend NOT to install patch from IDE with "Close IDE and install YES/NO", and to select "NO". When "YES" is selected, the IDE closes and installs immediately, and also restart the IDE after installation is done. I have seen some kind of 2nd run of install, but it was too fast to see anything. What I prefer is that the IDE does not auto-restart, so that I have time to check what was changed first.
  8. Rollo62

    Android .aab - assets for Android32 missing

    @Vandrovnik Are you talking about Rx10.4.2 ? In the new versions only AAB can be produced, with all files in. I also add deployment assets to 32 and 64 Bit too. This makes the AAB bigger, that right, but thats only used to upload to the store. With the bundletool.jar you can extract and re-package different APK's from this AAB. Exactly that is doing PlayStore too with the AAB, so a user will only get his APK, to reduce transfer size. There is also a "universal APK", which contains all different APK, which blows e.g. 40MB single APK to 160MB in total, I'm not quite sure what this universal APK is used for, or how the devices pick their "special" APK, or maybe this is only for transfer all files in a single ZIP.
  9. Hi there, I know the similar thread, and now it hits me too. From my normal AAB project, I just need to creat separate APK, to send to some testers. If I build as the project as APK32/64 separately, which I did many times before, and Yes, I removed the checkbox, restarted IDE, and tried everything 10 times. My IDE always generates an AAB. This happens with a project that could build APK before flawlessly. Next step I have to create a complete new project, but I would like to ask is somebody knows a workaround for this ? Edit: Oh yes, RSP-32995
  10. Yes, I've tried whats explained in the RSP. I could generate one AAB, from there either one single universal APK, or many, different APK's. Since I need that for exchange with others, I have not fully tested the universal APK, is this really running everywhere ? That would make sense, or to choose only 1-2 splitted APK's, the whole splitted APK's will take 4-5 times the size of the ZIP file. Are you working with universal or splitted APK's ?
  11. You think 26 Characters are enough ? šŸ¤”
  12. Rollo62

    Delphi books

    Thanks for that link too, which links to a whole lot of succinctly free e-books, thats quite interesting. I hope I don't misunderstand, you want to send the link to the sources, not the entire PDF's, of a copyrighted book ? But many of the original sources for books you can find easily by searching after its name, so everybody can get them on his/her own, if needed.
  13. Rollo62

    XCode 12 compile error

    I can approve that too, current Rx10.4.2. Suddenly in a project the CFBundleName appeared as "iPhone", instead of $(ModuleName). I assume this happened when changing UIDeviceFamily from iPhone to iPhone & iPad, but not sure. What I heavily hope is that the version and options dialog will get much more stable one day.
  14. Rollo62

    Pos

    Maybe so, but since LSP I recognize that this behaviour has changed to older versions. Before it was able to filter only from beginning of terms, now it filters everywhere. Anyway for what reason: Hooray its getting more usable
  15. Rollo62

    Pos

    Dont get your point, there is AutoCompletion I think thats much better to have speaking names than some like AK, DoIt, Run, InTrlPaDel, aThng, .... (I don't care much about the grammar). And since LSP, we can "AutoComplete" within terms too, above you can find by "Inc", "Trail", "Path", "Del"
  16. Rollo62

    Pos

    FMX uses terms leading trailing ... Just saying.
  17. Rollo62

    Android Auto Launch App ( Delphi 10.3.3 )

    @robert183 Thanks for the description. As far as I know from older versions, with a custom classes.dex you cannot debug any more. Is that still true for Rx1042, with your setup ?
  18. Rollo62

    Bug in Android32 compiler

    Yes, but if I use a main and a shadow variable, which shall trigger when changed. Then if FMain <> FShadow then is very handy, when I can even assume that all numbers, NaN, IN's are running well. Or when I send a value to a display, which need further formatting. procedure DisplayValue( AValue : Single ); begin AValue := AValue / 1000.0; // NaN / Inf is kept as is LDisplayText := DoConvertToText( AValue ); // can be 0.000; 123.456; -.--- (=NaN); -OL- (+Inf); -UL- (-Inf); end; Also that can be interesting when not always need a lot of guad-code around it.
  19. Rollo62

    Bug in Android32 compiler

    Because of that I've build my NaN, INF+, INF- safe compare helpers, so that I can expect consistent behaviour. I call those NaN_Safe operations, where I can also compare NaN, etc..
  20. Rollo62

    Android Auto Launch App ( Delphi 10.3.3 )

    Not enough time to look deeper into this., and what you are doing wiht Java and Delphi. But from the error message This could have something to do with the customizing of the classes.dex file. That is a big change in the underlying Delphi stuff, so I'm not sure if you really need to use a custom classes.dex, better to avoid that, if possible. But your task sounds as if it might be needed. To run a sticky service on boot could be an option too, but I haven't tested that yet. I'm not sure if there were any options to allow auto-starting after boot, maybe so, with some hacks. Unfortunately there were so many internals changed in Android, since those posts, so maybe also this doesn't work as described before. http://docwiki.embarcadero.com/RADStudio/Sydney/en/Creating_Android_Services#Sticky_Start http://delphi.org/2015/09/minimalistic-android-service-with-delphi-10-seattle/
  21. Rollo62

    Android Auto Launch App ( Delphi 10.3.3 )

    Not tested myself, but you have a look here or here (German DP)
  22. Rollo62

    Display a form created in Fmx ANDROID Many time

    Its a little unclear to me what you want achieve. If you want showing/hiding the form, then you should create the form ONCE and Show/Hide it. From your text it seems that you Create, but never free the Form. So maybe that is the issue, multiple creation of the same form ? In your code you put fields to another object, (AddObject), that could cause a lot of issues and sideeffects too. Maybe you can show us the full code of what you are doing.
  23. Rollo62

    Planning for V4 (FMX support)

    @Primož Gabrijelčič Please clarify what platforms VCL/FMX can be used. I'm interested in iOS / Android mainly, bit Win32/64 / Macos too. Did I miss that your library is compatible with those ?
  24. Hi there, I'm playing around with the new TLightweightMREW, and it seems to be a custom record now. There were already some important improvements from @Primož Gabrijelčič available. In comparison to TMultiReadExclusiveWriteSynchronizer, which is a class, I ask myself if this new TLightweightMREW is intended to be used as a field over a classes lifetime. Like type TMyClass = class private FLock : TLightweightMREW; ... ... procedure DoSomeLocking; procedure DoSomeMoreLocking; procedure DoSomeLockingStart; procedure DoSomeLockingStop; ... constructor Create; destructor Destroy; override; ... end; implementation ... constructor TMyClass.Create; begin inherited; //FLock as custom record needs no special initialization ! end; procedure TMyClass.DoSomeLocking; begin FLock.BeginRead; ... FLock.EndRead; end; procedure TMyClass.DoSomeMoreLocking; begin FLock.BeginWrite; ... FLock.EndWrite; end; procedure TMyClass.DoSomeLockingStart; begin FLock.BeginWrite; ... end; procedure TMyClass.DoSomeLockingStop; begin FLock.EndWrite; end; constructor TMyClass.Destroy; begin inherited; // !! There is no way to find our if a locking is currently is running // FLock maybe destroyed when class is destroyed, the all locking released ? end; Is this kind of "class global" field, inside a class, intended to be used like that ? If so, how to manage possible hanging "locks", when the whole class is destroyed before locks were released ? Maybe its somehow guaranteed by design that FLock is releasing all locks, when the class is destroyed, but I would doubt that. So that means, I would have to put my own "lock accounting" around this TLightweightMREW field, is that correct ? Maybe this kind of use-case is not the right for the TLightweightMREW, and it better should be used only "locally" within a method ?
  25. Rollo62

    TLightweightMREW considerations

    My goal was to ensure that no pending internal lock are open. Unfortunately there is no "ReadLockCount" or "WriteLockCount" to check that. I was considering a kind of "Flush" for all open locks, I thought the TMultiReadExclusiveWriteSynchronizer is doing something like that destructor TMultiReadExclusiveWriteSynchronizer.Destroy; begin BeginWrite; inherited Destroy; CloseHandle(FReadSignal); CloseHandle(FWriteSignal); tls.Free; end; Is calling BeginWrite maybe recommended to assure issues with open locks ? Of course it would create a lock, instead of closing. The TLightweightMREW has Initialize, but no according Finalize. class operator Initialize And even if so, would the Finalize be reliable called on class destruction, never checked that with CustomManagedRecords ( I hope it would ) ? I used to track locks with each successful TryBeginRead/EndRead, if needed, inside the class, by accounting with TInterlocked counters. But wouldn't it be better if the locking class/record itself would have offered its internal accounting. Probably there is something wrong with accounting of locks at all ( I know after the moment I've got a count, its all can be changed ) ? For just waiting until all is cleaned up before class destruction, or at least for preparing a clear error message "Hanging lock".
Ɨ