Jump to content

Rollo62

Members
  • Content Count

    1950
  • Joined

  • Last visited

  • Days Won

    25

Posts posted by Rollo62


  1. As explained above, define work top-down as compiletime, pretty much as the "defines" in C/C++.

    This is very useful since you can switch between certain code behaviour parts, include or not to compile, depending on a compiletime defined condition.
     

    //Can be used with DEFINED() in a more speaking, checkbox-like version
    {$DEFINE ___USE_THE_BO_VARIANT }
    {$DEFINE _X_USE_THE_MO_VARIANT }
    {$DEFINE ___USE_THE_ZO_VARIANT }
    
    FUNCTION DOTHERPORT;
    BEGIN
    {$ifDEF  _X_USE_THE_BO_VARIANT}
              result :=DoCharges(true,-1,false,False,false,lg('CLOSE CHARGES'),'1',dm2.sysdate.fieldbyname('date').asdatetime)
    {$else}
    
             result := DoCharges(sender=Nil,-1,False,False,FALSE,lg(TDsFancyButton(Sender).Caption),'',0,dm2.sysdate.fieldbyname('date').asdatetime);
    {$endif}
    END;
    
    //Or maybe in mode complex scenarios, as switch/case-like option, like this
    FUNCTION DOTHERPORT2;
    BEGIN
    
    {$if     DEFINED( _X_USE_THE_BO_VARIANT ) }
              result :=DoCharges(true,-1,false,False,false,lg('CLOSE CHARGES'),'1',dm2.sysdate.fieldbyname('date').asdatetime)
    {$elseif DEFINED( _X_USE_THE_MO_VARIANT ) }
             result := DoCharges(sender=Nil,-1,False,False,FALSE,lg(TDsFancyButton(Sender).Caption),'',0,dm2.sysdate.fieldbyname('date').asdatetime);
    {$elseif DEFINED( _X_USE_THE_ZO_VARIANT ) }
              result :=DoCharges(true,-1,false,False,false,lg('ZOOOO'),'1',dm2.sysdate.fieldbyname('date').asdatetime)
    {$else                                    }
              result :=DoCharges(true,-1,false,False,false,lg('NOTHING ELSE MATTERS'),'1',dm2.sysdate.fieldbyname('date').asdatetime)
    {$endif}
    
    END;

     


  2. 2 hours ago, dcroghan said:

    What I wonder is (outside of using something like Wireshark) is there a way to see the request that RESTDebugger is sending? 

    I was curious how far you can get with the newer System.Net.HttpClient, System.Net.HttpClientComponent, System.Net.URLClient.

    It seems quite limited, perhaps the good old Indy might have more tricks up its sleeve.

    TNetHTTPClient TRESTClient and friends are not so verbose in regards of internal stream data.

    Perhaps a combination of both can get more insights about the underlying data streams?

    image.thumb.png.e653510e9ae645eccf0c0dd3f52f7ef0.png

     

    T526_RestDebug_002.zip


  3. 8 minutes ago, Attila Kovacs said:

    I told ya I can't imagine how this automated tool should work on this probem, this is a real PITA go get it right.

    I could think of maybe parsing and replacing somehow, or edit manually at least in an easier editing system than InDesign.
    Im not an InDesign user, but my impression is that using InDesign as-is is a pain-in-the-.... in the first place.
    Maybe I'm wrong, but its not something I would love to use on a daily base.


  4. 41 minutes ago, Attila Kovacs said:

    I'm almost finished (I had some time in the evenings during my trip to Sardinia), and I would suggest making that image an 'Artifact' in your case, that would make the readers completely ignoring it.

     

    But thats not always what it is.
    It may be a signal word, it may be a warning sign, which is crucial to the user in user manuals.
    https://www.kothes.com/en/blog/creating-safety-and-warning-notices-with-the-safe-method

    image.thumb.png.b1ab8ea96d31bf1d365876fe6e23e20a.png

    image.thumb.png.96b38b3340352dca17524196467c52d1.png

     

    Ok, those can be maybe set in their local language, but sometimes these icons were not repeated in each language.
    Thats hard to keep on track, if you have 8000 of those entries in hundrets of files.
    Our artwork department will be working on that alone for half a year, updating the current/older documents.  :classic_biggrin:

    I think the best way is to keep as-is and to provide a second channel of those documents, e.g. by HTML, where it will be possible to somehow auto-translate and fill those elements.
     

     


  5. On 6/13/2025 at 2:05 AM, Anna Blanca said:

    Hi. I'm trying change icons of my Android app, and i made all as earlier - on the way Project>Option>Application>Icons. 

    Yes, that is some messy stuff, the icons.
    What I do, to avoid getting even more messy:
    - I made a 1:1 copy of the original Embarcadero artwork from /bin/artwork/... into a local folder to my project

    - This ensure that I use the same filenames as Embarcadero did, if I forget one or some changes in new versions, there is always the fallback to the Emba Icon

    - Then I redirect the folders ( not the filenames ) of the Icons dialog, to link to my local folder  ( this can be done by search/replace in *.dproj too, if you do carefully ).
    - Then you might change the icons accordingly to your design, keep all dimensions, file-names, file-formats, etc., just relace the image to your design
    - After that, your app takes the new images (perhaps you have to de-install/re-install) the app, to make it happen.

     

    That way you don't have to fumble around with deployment at all, if its only about the original Embarcadero App Icons.
    You just trick the IDE to replace the original artwork by your, without even add more and more messy filenames.

     


  6. On 6/7/2025 at 10:39 PM, Attila Kovacs said:

    Without tags, the screen reader will start reading things like 'line, line, path, rectangle, etc.' 

    Even worse than that, I ask myself what happens with internationalizations?
    We have PDF with 27 languages in one file.

    How is internationalization regulated there, are there certain regulations and best practices?
    What I mean is, for example, an alternative text for images, for screen readers.

    https://www.w3.org/TR/WCAG20-TECHS/PDF1.html

    We sometimes have documents in 27 languages, usually with one image per language, which could be tagged internationally, which is an enourmous workload.
    However, there are always many images that apply directly to many languages, in the worst case for 27 languages, what measures should the alternative texts and tags be given there?
    It makes no sense at all to put 27 translations in one tag.
    Alternatively, it would be conceivable to only ever add EN as a fallback, but this would also contradict the fact that all documents should be available in all national languages in each EU country.
    Such EN fallback would not be OK according to WCAG 3.1.2 or EN 301 549.

    How could such cases be handled sensibly?

    Yes, the right answer is, re-structure the whole document, which also would blow up the size tremendously.
    Since the files are also for printed user manuals, it would mean we have to have much more size and paper waste.

    No matter what you do, you cannot meet all the EU regulations, because they were highly contradicing in so many single topics,
    best method, close your eyes and wait until you get sued :classic_biggrin:
    Of course, the more you try to regulate, the more it gets into over-complexity and finally the opposite of the original intention.

    At least HTML has maybe solutions to that, even though not very easy to use:
     

    <picture><source srcset="banner-de.svg" lang="de"><img alt="Standort Berlin"></picture>

    or you denfine, thats its a language neutral role, which would work in the least of all cases, IMHO.

    html <img src="check.svg" alt="" role="presentation">


    My conclusion:
    You cannnot meet all requirements: A11y, L18n, EcoDesign( saving Paper), EUDR (do not de-forest), GPSR, User manual design (warning icons), etc. etc., but
    you can freely choose which regulation you would like to violate the most:classic_biggrin:

     

    Are there any other fresh ideas about these topics?  I cannot believe that we are the only ones looking into this mess.
     

     


  7. 15 hours ago, Anders Melander said:

    I would argue that the type of Epsilon depends on the use case; For one an absolute explicit Epsilon is suitable (SameValue(Value, Epsilon)), for another an absolute implicit Epsilon will make sense (SameValue(Value) but with some better defaults), and for yet another a relative magnitude Epsilon would be desirable (let's call it KasObSameValue(Value, Epsilon) since we don't have it in the RTL).

    What I wanted to say is, that even for SameValue(Value), you have to consider the Epsilon.
    Only because its some kind of default, it doesn't make it better, you should better know it and deal with it.

    https://docwiki.embarcadero.com/Libraries/Athens/en/System.Math.SameValue

    Quote

    If Epsilon = 0, then some reasonable default value is used implicitly. For example, the Double version of SameValue uses the default value:

    Epsilon = Max(Min(Abs(A), Abs(B)) * 1E-12, 1E-12)

    What exactly is reasonable and whats not, depends on the use case, like you perfectly said.
    Thats why I would argue, that you always shall consider it (and better set it to make it visible to the outside too).

    I prefer to pre-set Epsilon always by myself, to the desired value, instead of any automatic and
    maybe unexpectedly changing behaviour from internal structures.
    This is only calling for unwanted sideeffects. :classic_biggrin:

     

     

    2 hours ago, Kas Ob. said:

    i will start with single float point, it is 32bit and we all know its structure and how it work, but i am writing about the things that are not very known !

    lets look at the smallest number that single can have, and again i am talking about positive only here as the negative while they are less but ,, meh ,, it is just signal bit, anyway the 3 smallest numbers, and here pay attention i am going with normal and not subnormal ones, these are smaller a lot but they are different case, while both belongs to IEEE 754, the smallest one is 2^−126, i don't have calculator to get the decimal value because it will help here, so i am using online Wolfram Alpha

    2^-126 = 1.1754943508222875079687365372222456778186655567720875215087517062784172594547271728515625 × 10^-38

    but we are limited in precision and i need the decimal representation and singles has 24 precision so 

    2^-126 = 0.000000000000000000000011754943508222875079687365372222456778186655567720875215087517062784172594547271728515625

     

    All this might be true, but is very scientific.
    Unless I cannot see a real benefit, I will stay with my decimal Epsilon, perhaps only in deeper Physics we would need different perspectives than 10^-3, ... 10^-15 or so.
     


  8. 6 hours ago, Kas Ob. said:

    ... adaptive one will be more complex and depend on the exponent part and scale with it, think about it, comparing numbers in billions makes the machine Epsilon very silly, so such epsilon (error tolerance) should be magnified a little to accommodate ...

    Yes,  I completely get that point.
    Only I'm unsure in which cases this would really make sense.
    Usually I know my workroom, where I expect my variable to sit in.
    If you don't know that and you really want to switch tolerances, then I'm not really sure why.

    That would mean a 1^3 will get the tolerance of 1.0, a 1^6 might get a tolerance of 1000.0, for example.
    So what happens when you multiply two number, do you really want to re-calculate the tolerances too?
    Ok, in more complex calculations it should be enough to calculate the tolerance at the very end, according to the result value.

    Instead of putting such overhead to an "adaptive" functionality, I would rather put more overhead into statistics,
    to achive mean and std deviation, which are much more useful to me.

    I must confess, that I did such "adaptive" tolerance too, in some projects, but when using statistics for getting more insights of data,
    this was always much more useful to me.

    Nevertheless, maybe there are good reasons for adaptive tolerances too, only its already late today and I cannot find a real use case at the moment. 🤔
    The only two reasons I could see for now, are
    for display clearance of the last digits, or
    if you want to convert the real numbers into integers then afterwards, to keep their last digits clean .
     


  9. 2 hours ago, Kas Ob. said:

    ...  as its error tolerance is fixed (not adaptive) ...

    I think always in tolerances, when it comes to real numbers, because thats what the real numbers were all about, IMHO.  :classic_biggrin:
    Perhaps, I'm a little biased by handling with measurement technology too much ... 

    Not sure what you mean by "adaptive" here, but what comes to my thought is statistics then, which directly follows the real numbers tolerances.
     


  10. Not sure if that would help you in your situation, but under Windows-10 you could try to pre-set your desired default encoding:
    A DWORD value called iDefaultEncoding can be created in the registry path HKEY_CURRENT_USER\Software\Microsoft\Notepad
    https://www.querrum.de/querbeet/Notepad-ANSI-encodierung-Voreinstellung-aendern.html

    - The possible values are:

        1 for ANSI

        2 for UTF-16 LE

        3 for UTF-16 BE

        4 for UTF-8 with BOM

        5 for UTF-8 without BOM

    This setting affects the default encoding for new files, but does not solve the problems with the automatic recognition of existing files

    Under Windows-10 these optiions were completely removed and replaced by AppData Extensions.
    Maybe its still possible to get back the old Notebook, like explained here:
    https://blog.2cn.in/index.php/archives/151.html
    https://www.askwoody.com/forums/topic/how-can-i-restore-functionality-of-notepad-exe-on-win11/


  11. Yes, I'm checking on different levels howto get those tags added, my hope is that simple conversion or PDF-Printers to the job and accept those tags from HTML.
    If not, then the approach to fiddle with the PDF tags itselfs, but imagine a very large document with 27 languages and 6500 issues found ...
    My goal is to bring these documents to 0 Issues, when tested by those tools.
    I'm not sure if that ever can be done automatically, like PDFix does, at least it can reduce those issues.

    Other ways are maybe, for me the best would be HTML-to-PDF conversion/printing or the like, which reflects the aria-elements and others into the PDF,
    which seems to be ignored by the tools I checked so far.
    Other options to rework by Pythons tools seems to be the most promising solution so far.
    Or fixing directly in InDesign, e.g. bei plugins doing automatic fixing somehow.
    The question is what are the least painful processes, if you have many older documents with each about thousands of issues?
    To rework them manually is really not the most effective way, but perhaps the neccessary if we don't find better solutions.
     


  12. 21 hours ago, Anders Melander said:

    Multiply by a 10^"number of decimals", Trunc to convert to integer, Assert on the integer value

    I do the same in many places, even keeping Integers for example by the Factor 10000 stored somewhere in the first place,
    but then you must ensure that it never happens that there is an unexpected overflow of the Integer.
    Thats why this solution always leaves me with a bad feeling, when I used it, ... but there's no such thing as a free lunch :classic_biggrin: 


  13. 20 hours ago, Attila Kovacs said:

    I've just tested some documents my app generates, and they are all rated as Taygetos+.

    Everything has to be compliant in just 3 weeks, great, thank you @Rollo62.

    Then see German DP, perhaps this is interesting for you too
     

    Quote

    The PDFix Lite also works after installation, is a QT project, and even seems to fix all problems automatically.
    https://pdfix.net/pricing/
    The desktop version is no longer free, but if the fix works properly it's probably worth the money.
    I'm currently still checking what the output is like.


    PDFix Lite can also break with some PDFs, but it produces much better results and can also fix very complex PDFs.
    Unfortunately, I don't currently have the ultimate test tool, partly because I don't use Adobe products myself,
    there is either something from Adobe or plugins.

     

    • Thanks 1

  14. Hi there,

    I’d like to ask if anyone here has experience working with A11y (accessibility):
    https://www.bmas.de/DE/Service/Gesetze-und-Gesetzesvorhaben/barrierefreiheitsstaerkungsgesetz.html
    https://commission.europa.eu/strategy-and-policy/policies/justice-and-fundamental-rights/disability/union-equality-strategy-rights-persons-disabilities-2021-2030/european-accessibility-act_en
     

    This also concerns PDF files, such as data sheets, catalogs, EU declarations of conformity, and so on.
    PDFs are not accessible by default; there is PDF/UA for that, and PAC is a good testing tool.
    https://pac.pdf-accessibility.org
     

    I’m specifically facing the issue that I generate pages in HTML and then convert them to PDF.
    However, the PDF/UA-relevant entries are often lost during this conversion.
     

    Has anyone experienced similar problems with HTML-to-PDF conversion? Maybe there are good tips and/or tools for this process?

    Yes, I could generate PDFs directly with Delphi, but that would require a complete overhaul in so many places that I’m hoping it can also work with HTML.


    I’ve also cross-posted this in the DE-DelphiPraxis.
    https://www.delphipraxis.net/217301-bfsr-barrierefreiheitsges-eu-accessibility-act-eaa-pdf-ua-aus-html-generieren.html#post1549264


  15. Yes, it seems to be about the usage of the Places UI Kit.
    https://developers.google.com/maps/documentation/javascript/places-ui-kit/overview?hl=de

    and the GMP GoogleMarketingPlatform
    https://marketingplatform.google.com/about/platforms/gmp/ads_advertising/emea/
    It seems to be related to GoogleMaps like this

    Quote

    Targeted advertising on Google Maps:

    Adverts based on location
    - GMP allows advertisers to place their adverts on Google Maps based on the user's location. 


    Local search results:
    - GMP can help positively impact local search results on Google Maps by placing relevant information and ads in search results. 


    Campaign planning and optimisation:
    - GMP provides tools to plan, execute and optimise marketing campaigns that include advertising activities on Google Maps. 


    Data analysis:
    - GMP supports the analysis of campaign performance, including the performance of ads on Google Maps, to optimise future campaigns. 


    If an app make no use of any of these, I would assume that there is no further impact and no action required.
     


  16. I've received this info from Google, 
     

    Quote

    Hello Google Maps Platform customer,

    We're writing to let you know about some important updates to the Google Maps Platform (GMP) Terms of Service (ToS) and our product offerings for customers with any GMP project linked to a billing account with an address in the European Economic Area (EEA customers). These updates will be effective on 8 July 2025.

    The changes to our terms are a result of a recent proceeding by Germany’s Bundeskartellamt (FCO) concerning the terms of the generally available GMP Services.
    While their investigation did not confirm unlawful conduct by Google in the past, we are now required to update our terms for the future.

    Here's a quick overview of what's changing on 8 July 2025:

    It seems EU and Germany again had punished Google massively, so that they were forced to decide such quick changes. :classic_biggrin:
    I'm unsure if those changes will affect running apps anyhow, which were not using the Places or other data points.

    What I do use, is the simple Maps view w/ and w/o with markers, and some GeoReverse coding to receive real street names from the Lat/Lon values.
    As far as I have checked until now, this would not do any harm to my existing simple apps, that uses maps as side-feature.

    Maybe you have any deeper insights or experiences, please let me know.

    Here is the info I received from Google:

    English Deutsch
    Here's a quick overview of what's changing on 8 July 2025: Hier ist ein kurzer Überblick über die Änderungen zum 8. Juli 2025:
    Waiver of Three ToS Provisions: The following three provisions will be waived and, therefore, will no longer apply to your use of GMP Services: Verzicht auf drei AGB-Bestimmungen: Die folgenden drei Bestimmungen werden aufgehoben und gelten daher nicht mehr für Ihre Nutzung der GMP-Dienste:
    3.2.3(d) No Re-Creating Google Products or Features 3.2.3(d) Keine Nachbildung von Google-Produkten oder -Funktionen
    3.2.3(e) No Use With Non-Google Maps 3.2.3(e) Keine Nutzung mit Nicht-Google-Karten
    3.2.3(h) No Use in Embedded Vehicle Systems 3.2.3(h) Keine Nutzung in eingebetteten Fahrzeugsystemen

     

    We'll also waive any similar clauses in other terms applicable to your use of GMP Services. Details regarding how this affects your current project integrations linked to an EEA billing account are outlined below.

     

    Wir verzichten außerdem auf ähnliche Klauseln in anderen Bedingungen, die für Ihre Nutzung der GMP-Dienste gelten. Einzelheiten dazu, wie sich dies auf Ihre aktuellen Projektintegrationen mit einem EWR-Abrechnungskonto auswirkt, finden Sie unten.

     

    Product Updates and Modifications: Due to the removal of these three industry-standard provisions and due to our standards for Google Maps Content, we will need to make adjustments to some of the GMP Services for new integrations within your Customer Applications. For example:

    Produktaktualisierungen und Änderungen: Aufgrund der Aufhebung dieser drei branchenüblichen Bestimmungen und unserer Standards für Google Maps-Inhalte müssen wir einige GMP-Dienste für neue Integrationen in Ihren Kundenanwendungen anpassen. Zum Beispiel:

     

    If you want to show Places-related content with a map, you should now use the new Places UI Kit, which works with any map (including third-party maps). The Google Maps Content from the Places API (new and legacy) may no longer be displayed with any map, including a Google Map.

     

    Wenn Sie standortbezogene Inhalte zusammen mit einer Karte anzeigen möchten, sollten Sie jetzt das neue Places UI Kit verwenden, das mit jeder Karte funktioniert (einschließlich Karten von Drittanbietern). Die Google Maps-Inhalte aus der Places API (neu und alt) dürfen nicht mehr mit einer beliebigen Karte, einschließlich Google Maps, angezeigt werden.

     

    EEA customers may now, where suitable, use GMP Services in embedded vehicle systems. They may also use GMP Services, where suitable, for real-time navigation with a third-party map, as long as that real-time navigation usage complies with Google’s safety requirements.

    EWR-Kunden können GMP-Dienste nun gegebenenfalls in eingebetteten Fahrzeugsystemen nutzen. Sie können GMP-Dienste auch für die Echtzeitnavigation mit einer Drittanbieter-Karte verwenden, sofern diese Nutzung den Sicherheitsanforderungen von Google entspricht.

     

    We're introducing an EEA-specific GMP ToS, including EEA Service Specific Terms that will govern your new GMP integrations.

     

    Wir führen spezifische GMP-AGB für den EWR ein, einschließlich EWR-spezifischer Servicebedingungen, die Ihre neuen GMP-Integrationen regeln.

    How this affects your current integrations: Auswirkungen auf Ihre aktuellen Integrationen:

     

    To help you with these changes, you may continue using GMP Services in your Customer Application for your current project’s GMP integrations, with the three ToS provisions waived, as long as your project’s GMP integration is not materially modified on or after 8 July 2025.

     

    Um Sie bei diesen Änderungen zu unterstützen, können Sie GMP-Dienste in Ihrer Kundenanwendung für die aktuellen GMP-Integrationen Ihres Projekts weiterhin nutzen, wobei die drei AGB-Bestimmungen aufgehoben sind, solange Ihre GMP-Integration nicht am oder nach dem 8. Juli 2025 wesentlich geändert wird.

     

    If you materially modify your project’s GMP integration on or after 8 July 2025, you will then need to accept the (new) EEA version of the GMP ToS to continue using GMP Services for the modified project.

     

    Wenn Sie Ihre GMP-Integration am oder nach dem 8. Juli 2025 wesentlich ändern, müssen Sie die (neuen) EWR-AGB für GMP akzeptieren, um GMP-Dienste weiterhin für das geänderte Projekt nutzen zu können.

     

    Additional information:

     

    Weitere Informationen:

    You’re receiving this notice because you have a project(s) linked to a billing account with an EEA address governed by our online ToS. Sie erhalten diese Mitteilung, weil Sie ein Projekt haben, das mit einem Abrechnungskonto mit einer EWR-Adresse verknüpft ist und unseren Online-AGB unterliegt.
    For more information about these product and terms changes, including how they affect you, please refer to our FAQ. More details regarding Places UI Kit can be found in our documentation. Weitere Informationen zu diesen Produkt- und AGB-Änderungen, einschließlich deren Auswirkungen auf Sie, finden Sie in unseren FAQ. Weitere Details zum Places UI Kit finden Sie in unserer Dokumentation.
    No action is needed for projects linked to billing accounts with an address outside of the EEA. Für Projekte, die mit Abrechnungskonten außerhalb des EWR verknüpft sind, ist keine Aktion erforderlich.
     

     


     

    • Like 1

  17. On 6/4/2025 at 7:56 AM, Die Holländer said:

    ... about Azure Cloud Development with Delphi

    I saw a statement (at time 40:38) "Azure IDE helper plugin under development by Glenn Dufke" ...

    I haven't looked into this, but perhaps its related to the Azure stuff and a later extension:

    https://code-kungfu.com/getting-started-with-azure-function-apps-in-delphi.html

    https://github.com/code-kungfu/Delphi-AzureFunctionApps

    https://learn.microsoft.com/en-us/azure/azure-functions/create-first-function-vs-code-other?tabs=go%2Cwindows#create-an-azure-functions-project

     


  18. Yes, the whole regulation is a maximal stupid and over-complicated implementation, different in every EU country.
    Thousands of EU officials had a very hard time over many years, to make it as incompatible as possible to the real world, better fitting to their own parallel world.
    I assume that in practice still many EU companies will print it out on paper and re-scan it to PDF and staple the paper sheet into the folder :classic_biggrin:

     


  19. On 6/1/2025 at 1:28 AM, FmxToPdf said:

    Yes, you are right, I need to work on the site. Since I wrote the component as an individual developer, I could not pay much attention to the site. Currently, the component only supports Android devices.

    Does it come with soucecode, or not?

    Because that would be a no-go for me, if its not.
     

×