Jump to content

Rollo62

Members
  • Content Count

    1649
  • Joined

  • Last visited

  • Days Won

    20

Everything posted by Rollo62

  1. Rollo62

    Unit dependency viwer

    Yes, I can confirm that. Now it recognizes and also pays attention to the conditional defines, showing only UPartB, perfect. 👍
  2. Rollo62

    Unit dependency viwer

    Ahh, I see. There was a disabled folder under Embarcadero/Studio/..., that why it didn't show up in bold to me, but it seems to analyze the disabled folders anyway, that's why it appeared pink in the first place. Yes, that is pretty much OK.
  3. Rollo62

    Unit dependency viwer

    I have tested a little and found, that in somewhat complex structure scenarios, it might overlook some of the units. See example here, where UPartA.pas and UPartB.pas were missing, while the project compiles and works fine. T483_TstHclUnitDep_002.zip If there are units with the same name, would it be possible to find some more details about, where they are located. Maybe by right click, to get a list of where the absolute paths of all copies are?
  4. Rollo62

    Unit dependency viwer

    As far as I understood, this is a new demo in the HtmlComponents Library, right? That means, when purchasing it, you can refine all colors as you wish
  5. Rollo62

    Unit dependency viwer

    Well, now I tried to enforce one, I thought it would automatically find and mark them all somehow. Nevertheless, it's working well, when clicking on such circular part.
  6. Rollo62

    Unit dependency viwer

    Great, now it seems to find also all units in upper and sibling folders 👍 That is a very useful tool and blazingly fast. I'm a little unsure, how to make use of the "circular reference" feature. Is there a maximal zoom factor, I cannot really get everything on one page ( nevertheless, its too small to make sense anyway).
  7. Rollo62

    Nobel prize for figuring out

    <OT> I do not know most of these wordings, perhaps they come from another century. This feels very unbalanced and not equal in word choice to me, couldn't this be better to put a big warning bar over it that this comic may severely disturb the unsophisticated reader. </OT>
  8. Rollo62

    String literals more then 255 chars

    Maybe you are right. https://blog.marcocantu.com/blog/2023-09-yukonbeta-stringliterals.html
  9. Rollo62

    String literals more then 255 chars

    I never said anything different, and I dislike the ugliness in the same way. But you must agree, that the usefulness of such configurable addition of string structures would be a great thing. Now you only can do this conversion part by external tools BEFORE design time and need additional correction DURING runtime, or you convert strange structures strings DURING runtime. My point is, if Embarcadero puts a lot of effort into multi-strings, then I'm asking what main purpose this should solve ? With a little extra effort, this could be maybe usable in a lot of cases, like (JSON, HTML, XML, Python, whatsoever ). This is intended as a brain teaser, I'm not asking for any of these additions. I'm afraid, this soon will end into the same pro- and contra discussions, as for the inline variables.
  10. I always liked the concept of splines a lot, and here is now the reason why https://www.youtube.com/watch?v=jvPPXbo87ds This beautifully unveils all hidden secrets about it ( Ok, not all, hopefully more to come ).
  11. Rollo62

    String literals more then 255 chars

    and like, said, if you want "line" breaks, you should be able to define what kindof ( None, Space, CrLf, Lf, Cr, ...). I don't care much about the ugliness of the ''' approach, but would like to see a bit more flexibility here, to define how it shall behave. Maybe as proposal, this would limit the ugliness to an acceptable level: LStr = ''' //Default TBD A one A two A three A four '''; LStr = '''( TMultiLine.Crlf ) // Specific, maybe TMultiLine.None, TMultiLine.Space, TMultiLine.Crlf, TMultiLine.Cr, TMultiLine.lf, TMultiLine.SystemLineBreak A one A two A three A four '''; LStr = '''( TMultiLine.Custom, #0#1#2 ) // or even custom specification A one A two A three A four '''; And how about the desired behavior of leading spaces ?? Another universe. And how about the desired behavior of leading / trailing separators ?? And how about codepage conversion, oh my ?? The whole thing could be a kind of text processor IMHO, maybe like RegEx, to avoid the necessity for later re-structuring. The whole sense is to paste in a format at design time from any source format, which is immediately compiled into the final output. While at runtime you got it handed in the format and structure you intended to have, no more copy or format needed. That would be on my whishlist.
  12. Rollo62

    Cross-platform Application Help for FMX and VCL

    You separated the ZipHelp file management from the view, that is very good. While in the demo, the view part is done by TWebBrowser. I have not checked the code too deeply, but what stops you from using this same demo and concept on iOS or Android too ? Maybe permissions, maybe different TWebBrowser operation ?
  13. Rollo62

    String literals more then 255 chars

    Then I would suggest to introduce 4 quotes, for this case when you want including CrLf: LStr = '''' A one A two A three A four ''''; I wonder at how many quotes this might end ( Default-No-line-feed = 3 quotes, CrLf = 4 quotes, Lf = 5 quotes, Cr = 6 quotes, any chinese Lf = 7 quotes, .... ) 🤔 This syntax definition might go on until 64-Bit ends.
  14. Sounds like no 3rd party CAD or GIS libraries allowed ? What outcome level of graphical perfection do you expect ?
  15. Rollo62

    Cross-platform Application Help for FMX and VCL

    Thanks, this is a very good idea. From the explanations, I would think it is not derived from the MS-CHM Format or any others, but written from scratch. Or is this based on any existing, well-known XML format ? Maybe you took the best parts from CHM and baked them into a more modern cake ? This would be a tough task anyhow.
  16. Rollo62

    ProcessMessages doesn't seem to update controls

    @Remy LebeauThanks for pointing into that direction 👍 I use ForceQueue and my own implementation of a DelayWorker successfully for years now, but I never realized that ForceQueue has its own Delay option available too. Good to know, I will look into it how this behaves. I see a little problematic part, since it seems to keep the Delay within a TMonitor.Enter(ThreadLock); ... TMonitor.Exit(ThreadLock); loop, at a first glance. Anyway, that should be fine for simple, non-critical Delays, like in this case.
  17. Come ooooon .... who needs that clunky stick-like thing from the last century
  18. Probably you misunderstood him a little, since this was his desired (world) sort order ... 🤔
  19. Hi there, I have some issues with the upload of a re-signed AAB bundle. I have to confess that this is not made with Delphi, for from an external supplier, which I want to Re-Sign into our PlayStore. This worked well before, but now a new version comes always with the message above: "Your Android App Bundle has an invalid signature" I only can assume, that this is caused by KeyStore file issues, during signing, but maybe I'm completely wrong with that assumption !!! I have tried many different variants now, different case sensitivity / different version codes / different KeyStore files / and other, but the basic problem with the bundle upload stays the same. What I try to do and what I am very sure about: - Downloaded the working AAB package from PlayStore - Checked the AAB Package, which contains everything as it should - I want to re-sign this AAB, with the API-level 33 for testing, because I have no never version on-hand soon. - The original AAB release bundle is currently still working and running in the PlayStore, also for API 32/ API 33 devices - I used the very same, re-signed and re-bundled AAB Package, which refuses now already to be uploaded into a new internal testing release, see above image - While I can check that all elements should be correct, like Package-Name, Version, KeyStore fingerprints, KeyStore alias ( tested with various case sensitivity ), and other - The Versions numbers were increased correctly, and everything seems well in place, as seen in the code below - When comparing the KeyStore fingerprints from the PlayStore and re-signed AAB, they were both 1:1 same I have no more idea, how to get this uploaded then, maybe somebody has a clue or spots some issues in the code below. Here were the changes made, to the original package: ( marked by <== HERE: ) element { namespace_declaration { prefix: "android" uri: "http://schemas.android.com/apk/res/android" source { line_number: 2 } } name: "manifest" attribute { name: "package" value: "com.Abcdcef.XyzAppName" //<== HERE: This is correctly set in final AAB } attribute { namespace_uri: "http://schemas.android.com/apk/res/android" name: "versionCode" value: "1234" //<== HERE: This is correctly set in final AAB source { line_number: 2 } resource_id: 16843291 compiled_item { prim { int_decimal_value: 6 } } } attribute { namespace_uri: "http://schemas.android.com/apk/res/android" name: "versionName" value: "1.0.66" resource_id: 16843292 } attribute { namespace_uri: "http://schemas.android.com/apk/res/android" name: "compileSdkVersion" value: "30" source { line_number: 2 } resource_id: 16844146 compiled_item { prim { int_decimal_value: 30 } } } attribute { namespace_uri: "http://schemas.android.com/apk/res/android" name: "compileSdkVersionCodename" value: "11" resource_id: 16844147 } attribute { name: "platformBuildVersionCode" value: "1234" //<== HERE: This is correctly set in final AAB source { line_number: 2 } compiled_item { prim { int_decimal_value: 6 } } } attribute { name: "platformBuildVersionName" value: "1.2.34" //<== HERE: This is correctly set in final AAB } child { text: "\n\n " source { line_number: 5 column_number: 33 } } child { element { name: "uses-sdk" attribute { namespace_uri: "http://schemas.android.com/apk/res/android" name: "minSdkVersion" value: "15" source { line_number: 7 } resource_id: 16843276 compiled_item { prim { int_decimal_value: 15 } } } attribute { namespace_uri: "http://schemas.android.com/apk/res/android" name: "targetSdkVersion" value: "33" //<== HERE: This is correctly set in final AAB source { line_number: 7 } resource_id: 16843376 compiled_item { prim { int_decimal_value: 30 } } } } source { line_number: 7 column_number: 4 } } child { text: "\n\n " source { line_number: 9 column_number: 40 } } child { element { name: "uses-permission" attribute { namespace_uri: "http://schemas.android.com/apk/res/android" name: "name" value: "android.permission.BLUETOOTH" resource_id: 16842755 } } source { line_number: 11 column_number: 4 } } child { text: "\n " source { line_number: 11 column_number: 67 } } child { element { name: "uses-permission" attribute { namespace_uri: "http://schemas.android.com/apk/res/android" name: "name" value: "android.permission.BLUETOOTH_ADMIN" resource_id: 16842755 } } source { line_number: 12 column_number: 4 } } child { text: "\n " source { line_number: 12 column_number: 73 } } child { element { name: "uses-permission" attribute { namespace_uri: "http://schemas.android.com/apk/res/android" name: "name" value: "android.permission.INTERNET" resource_id: 16842755 } } source { line_number: 13 column_number: 4 } } child { text: "\n " source { line_number: 13 column_number: 66 } } child { element { name: "uses-permission" attribute { namespace_uri: "http://schemas.android.com/apk/res/android" name: "name" value: "android.permission.READ_PHONE_STATE" resource_id: 16842755 } } source { line_number: 14 column_number: 4 } } child { text: "\n\n " source { line_number: 14 column_number: 74 } } child { element { name: "uses-permission-sdk-23" attribute { namespace_uri: "http://schemas.android.com/apk/res/android" name: "name" value: "android.permission.ACCESS_COARSE_LOCATION" resource_id: 16842755 } } source { line_number: 16 column_number: 4 } } child { text: "\n " source { line_number: 16 column_number: 87 } } child { element { name: "uses-permission-sdk-23" attribute { namespace_uri: "http://schemas.android.com/apk/res/android" name: "name" value: "android.permission.ACCESS_FINE_LOCATION" resource_id: 16842755 } } source { line_number: 17 column_number: 4 } } child { text: "\n\n " source { line_number: 17 column_number: 85 } } child { element { name: "uses-feature" attribute { namespace_uri: "http://schemas.android.com/apk/res/android" name: "name" value: "android.hardware.bluetooth_le" resource_id: 16842755 } attribute { namespace_uri: "http://schemas.android.com/apk/res/android" name: "required" value: "true" source { line_number: 19 } resource_id: 16843406 compiled_item { prim { boolean_value: true } } } } source { line_number: 19 column_number: 4 } } child { text: "\n\n " source { line_number: 21 column_number: 34 } } child { element { name: "application" attribute { namespace_uri: "http://schemas.android.com/apk/res/android" name: "allowBackup" value: "true" source { line_number: 23 } resource_id: 16843392 compiled_item { prim { boolean_value: true } } } attribute { namespace_uri: "http://schemas.android.com/apk/res/android" name: "appComponentFactory" value: "androidx.core.app.CoreComponentFactory" resource_id: 16844154 } attribute { namespace_uri: "http://schemas.android.com/apk/res/android" name: "icon" value: "@drawable/app_icon" source { line_number: 23 } resource_id: 16842754 compiled_item { ref { id: 2131099732 name: "drawable/app_icon" } } } attribute { namespace_uri: "http://schemas.android.com/apk/res/android" name: "label" value: "@string/app_name" source { line_number: 23 } resource_id: 16842753 compiled_item { ref { id: 2131427369 name: "string/app_name" } } } attribute { namespace_uri: "http://schemas.android.com/apk/res/android" name: "theme" value: "@style/AppTheme" source { line_number: 23 } resource_id: 16842752 compiled_item { ref { id: 2131492870 name: "style/AppTheme" } } } child { text: "\n " source { line_number: 28 column_number: 41 } } child { element { name: "activity" attribute { namespace_uri: "http://schemas.android.com/apk/res/android" name: "label" value: "@string/app_name" source { line_number: 29 } resource_id: 16842753 compiled_item { ref { id: 2131427369 name: "string/app_name" } } } attribute { namespace_uri: "http://schemas.android.com/apk/res/android" name: "name" value: "com.Abcdcef.XyzAppName.PSMainActivity" resource_id: 16842755 } attribute { namespace_uri: "http://schemas.android.com/apk/res/android" name: "screenOrientation" value: "portrait" source { line_number: 29 } resource_id: 16842782 compiled_item { prim { int_decimal_value: 1 } } } child { text: "\n " source { line_number: 32 column_number: 50 } } child { element { name: "intent-filter" child { text: "\n " source { line_number: 33 column_number: 27 } } child { element { name: "action" attribute { namespace_uri: "http://schemas.android.com/apk/res/android" name: "name" value: "android.intent.action.MAIN" resource_id: 16842755 } } source { line_number: 34 column_number: 16 } } child { text: "\n\n " source { line_number: 34 column_number: 68 } } child { element { name: "category" attribute { namespace_uri: "http://schemas.android.com/apk/res/android" name: "name" value: "android.intent.category.LAUNCHER" resource_id: 16842755 } } source { line_number: 36 column_number: 16 } } child { text: "\n " source { line_number: 36 column_number: 76 } } } source { line_number: 33 column_number: 12 } } child { text: "\n " source { line_number: 37 column_number: 28 } } } source { line_number: 29 column_number: 8 } } child { text: "\n\n " source { line_number: 38 column_number: 19 } } child { element { name: "service" attribute { namespace_uri: "http://schemas.android.com/apk/res/android" name: "name" value: "com.pairlink.normalLib.BLEDeviceManager" resource_id: 16842755 } } source { line_number: 40 column_number: 8 } } child { text: "\n " source { line_number: 40 column_number: 74 } } } source { line_number: 23 column_number: 4 } } child { text: "\n\n" source { line_number: 41 column_number: 18 } } } source { line_number: 2 }
  20. Oh my, like always A minute after this post, I found the issue: This problem was caused by an older command-line batch file, which still referred to JarSigner, and not the new ApkSigner, as required since a while.
  21. Rollo62

    mORMot 2.1 Released

    Thanks for the clarifications, what would you say from your gut feeling are the 5 biggest problem areas for Delphi Multi-Platform compatibility? Where you would expect big hurdles and where it is most likely to grind ....
  22. I can only agree with that and I would add that SDK/API should always be fully supported, i.e. 100%, and not only 80%. Then it is better to leave out unmaintained APIs altogether, in my opinion.
  23. Rollo62

    mORMot 2.1 Released

    Yes ,but I have a vague feeling that these classes are partly based on some Windows or other VCL or OS components. This is exactly why it would be good to clarify this once and for all. Because I assume that mORMot2 has improved multi-platform compatibility compared to mORMOT1, the question is just where exactly.
  24. This would probably break MAUI, Xamarin, Unity, ReactNative and many others as well, so I doubt Google or Apple would gain from this decision.
  25. Rollo62

    mORMot 2.1 Released

    Great stuff, thanks for that, but what keeps me from looking much deeper into this is, the missing platform status for a full multi-platform support. Do you have a list or table, showing which parts can be used under FMX ( iOS, Android, Windows 32/64, Macos, Linux ) and which one only under VCL ( Windows 62/64 ) ? I understand that it isn't made for mobile in the first place, but your library is so overwhelming full of goodies and tools, it would be great to get a clear picture for each single piece.
×