Jump to content


Popular Content

Showing content with the highest reputation since 07/04/21 in all areas

  1. Hello, good news is, that I just released a new version of DEC (Delphi Encryption Compendium): https://github.com/MHumm/DelphiEncry...eases/tag/V6.2 What's new? Fixed some regressions, among them some which hindered compilation with older Delphi versions (support for older compilers might be reduced in future versions!) Fixed bugs in the SCOP and SHARK cipher algorithms The unit test for the hash classes got improved by adding original test vectors to those algorithms which didn't already use original test vectors and where we could find those (for most we could) The SHA3 hash algorithm has been added for 224, 256, 384 and 512 bit including support for message lengths not being a multiple of whole bytes. Our implementation uses Eric Grange's optimizes permutation kernel ASM implementation on WIn32 and WIn64 (with his friendly permission of course!) A new demo got added: Hash Benchmark FMX Now have fun with this. The GetIt provided Lite version should follow within the next few days. TurboMagic
  2. Isn't fastest and using Delphi's own classes mutually exclusive? My personal recommendation goes to https://github.com/ahausladen/JsonDataObjects
  3. Jim McKeeth

    Is this C++ builders new FORUM ???

    I spent quite a bit of time with Ann Lynnworth from https://www.codenewsfast.com and restored a full archive there. You can go find all the old messages there.
  4. Lars Fosdal

    Delphi 11 Announced

  5. Idefix Pack: Sounds a little strange to me, at least in German, like to order the dog to grasp
  6. It needs some code to be added, but you can declare a const array[<enumeration>] of Integer with values 0 in all places where the enumeration is used in some way. const cCheckProjectType: array[TProjectType] of Integer = (0, 0, 0, 0); If you now extend TProjectType the compiler will stop at all places where such a declaration is present and you can inspect the code around for correct TProjectType usage. After that is done you extend the array values to make the compiler continue to the next problematic position.
  7. Greetings to everyone! My first post on this forum. Please forgive me if I'm posting in the wrong place. I turned some of the classes I had developed for the problems I encountered in daily life into a component set. I'm thinking of making additions in the future. I just wanted to add in case it helps. You can find detailed information on readme.md. I'll keep it short so I don't make it too long. Github: https://github.com/halilhanbadem/delphi-hb-components Thanks.
  8. Uwe Raabe

    Format uses clause

    You can define the group names per project in MMX Properties - Project options: A single identifier is treated as a group prefix which has to be followed by a dot (like System, VCL, FireDAC). You can also use wildcards like Rz* for all units from Raize Components (KSVC). Unit names not covered in one of the schemes above can be listet in brackets. This is the setting for MMX itself: (ToolsApi,DesignIntf,DCCStrs,DockForm,TabDock);Winapi;System.Win;System;Xml;Vcl;VirtualTrees*;Rz*;Tb*;Png*;MMX The settings are stored in the dproj file.
  9. vfbb

    [Android][Rio] How catch timeout REST error?

    If you set TRESTClient's SynchronizedEvents property to False, you can do this directly: // FRequest: TRESTRequest // FClient: TRESTClient // FCanRaiseException: Boolean = {$IFDEF DEBUG}True{$ELSE}False{$ENDIF} function TryRequest: Boolean begin FClient.SynchronizedEvents := False; FRequest.Client := FClient; try FRequest.Execute; except on E: ERESTException do begin if FCanRaiseException then Exception.RaiseOuterException(Exception.Create('Service or connection failed')) else Exit(False); end; end; Result := True; end; This code is blocking, so it must be executed in a task in the background, and communicating with the UI through a queue. Just a question, what rest api do you is integrating? You may be able to make this integration faster with the Refit library: viniciusfbb/ipub-refit: Simple way to consume REST services (github.com)
  10. ANN: StyleControls VCL v. 4.90 just released! http://www.almdev.com What's new: added: Windows 11 Fluent UI Blur background and frame support tested: all controls and components on Windows 11 system tested: working with System Theme and VCL Styles on Windows 11 system StyleControls VCL is a powerful, stable package of components, which uses Classic drawing, system Themes, GDI+ and VCL Styles. This package contains the unique solutions to extend standard VCL controls and also has many unique, advanced controls to create applications with UWP / Fluent UI design. Also with this package you can really improve applying and using of VCL Styles in your application.
  11. angusj

    Resource Hacker

    Resource Hacker A resource editor for 32bit and 64bit Windows applications. It's both a resource compiler and a decompiler - enabling viewing and editing of resources in executables (*.exe; *.dll; *.scr; etc) and compiled resource libraries (*.res, *.mui). Resource Hacker also provides many options for compiling and decompiling resources from the command-line. http://www.angusj.com/resourcehacker/ Download: http://www.angusj.com/resourcehacker/reshacker_setup.exe
  12. Daniel

    Need some enlightenment

    Hi, next time please chose a more specific subject for your question. 😉
  13. Stefan Glienke

    Test Insight not drawing correctly

    Make the duration column smaller - there seems to be some glitch with it sporadically spanning the entire width making the name column not visible which I have seen occasionally but could not repro yet.
  14. Angus Robertson

    Location change bug with fragment

    You were correct, a fragment/anchor/bookmark in the URL should never be sent to the server, it is purely an instruction to the browser on how to display the page. The ICS unit did attempt to remove # during relocation, but relocation has many different paths in the code, and it was not always being done. I've corrected in my master, won't be in SVN for a day or two, but in the latest SVN version add these lines to the function EncodePathOnly: I := Pos('#', OldPath); if I > 1 then Result := Copy (OldPath, 1, I - 1); My issue with the SSL/TLS certificate was me using an old sample application. Angus
  15. Christophe E.

    ANN: TECNativeMap 4.3

    This version brings the support of the Mapillary api version 4 (a kind of google street view) TECNativeMap is an equivalent of Google Map without any use of a WebBrowser because it is 100% Delphi. It is available in VCL and FMX versions on all platforms supported by Delphi Download the trial version for Delphi 10.4.x
  16. Compiler directives come to help. This is to ensure TEnum is starting from 1 (needed to loop through a string that contains chars for every item in enum) const EnumLiterals: array[TEnum] of Char = ('Q', 'W', 'E', 'R', 'T'); function SetToFixedStr(aSet: TSomeSet): string; var elem: TEnum; begin // check {$IF Ord(Low(TEnum)) <> 1} {$MESSAGE FATAL 'Must start from 1 (using as string index)'} {$IFEND} ... end Or, in every case that handles ALL values in enum: case item of enumItem1: ...; enumItemN: ...; {$IF Ord(High(TEnum)) <> 5} {$MESSAGE FATAL 'Implement it'} {$IFEND} end; // case This will catch addition to every place of enum. In case of enums starting from custom number, use Ord(High(TStatsType))-Ord(Low(TStatsType)) to get number of items. Btw, FPC catches switches that don't handle every item in an enum. Sometimes it helps, sometimes annoys 🙂
  17. dkounal

    Notifications in android

    I can confirm that with the help of Dave Nottage (DelphiWorlds) using API from Kastri, I can have notifications in android with a progress bar. Many many thanks for his time.
  18. Roger Cigol

    Is this C++ builders new FORUM ???

    I think the original subject line for this thread is one where this is quite understandable (and not a bad thing). There is a role for a forum where "rambling discussions" are accommodated. If you look at many other threads here they are more "particular problem focused". Mind you I am completely with everyone here, agreeing that Embarcadero made a disasterous decision when they chose to close down their forum. If you are looking at a new development system in this modern age one of the first things to check is how active is the community on the forum..... As I've said before as well as losing community visibility and the huge volume of useful technical knowledge they also closed down a valuable source of customer feedback. So "Kind of ridiculous... very sad.".
  19. Nice !, and i like how you combined all the padding in one place, but i have to point a thing about this padding function at https://github.com/halilhanbadem/AES-256-CBCEncryptionDelphi_PHP/blob/master/delphiAESDemo/lib/AESEncDec.pas Zero padding and Random padding should not be here, i mean for encryption, as they can and most likely will cause data corruption, zero padding is essential for hashing calculation but very dangerous or even wrong with encryption/decryption, and as you designed it for only encryption then they both should not be here or at least warn the user about there dangerous when decryption, there is no way to check length of the data, unless you include the data length within the data itself, in this case you are better with the other padding methods as they handle this right.
  20. corneliusdavid

    Which setting enables this feature?

    You're on the right screen: it's Code parameters. The Delay affects how quickly the tooltip will appear (or at least that's the idea--it doesn't display at all for me automatically if the delay is anything but "None"). You can always manually activate it by hitting Ctrl+Shift+Space.
  21. If the file is large enough to exceed available memory, probably you'll want to use stream-like parser, like SAX from XML. Grijjy has something alike https://blog.grijjy.com/2017/01/30/efficient-and-easy-to-use-json-and-bson-library/
  22. @Fabian1648 Apparently you don't know anything about vector manipulation. You cannot directly transform a .png to .svg. I advise you to download the GIMP and go on learning... But I'll help you, I vectored an icon similar to yours. See your new icon: android.svg Now what you have to do is change the ic_background.xml and ic_foreground.xml. ic_background.xml: <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="108dp" android:height="108dp" android:viewportWidth="108.0" android:viewportHeight="108.0"> <path android:name="background" android:fillColor="#1570a6" android:pathData="M0,0L108,0L108,108L0,108z"/> </vector> ic_foreground.xml: <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="108dp" android:height="108dp" android:viewportWidth="108.0" android:viewportHeight="108.0"> <path android:name="robot" android:fillColor="#ffffff" android:pathData="M63.56,62.94C63.56,63.72 62.94,64.35 62.16,64.35 62.16,64.35 45.85,64.35 45.85,64.35 45.08,64.35 44.45,63.72 44.45,62.94 44.45,62.94 44.45,48.37 44.45,48.37 48.72,48.36 58.69,48.36 63.56,48.37 63.56,48.37 63.56,62.94 63.56,62.94 63.56,62.94 63.56,62.94 63.56,62.94ZM50.49,40.91C50.57,41.06 50.5,41.26 50.34,41.34 50.34,41.34 50.34,41.34 50.34,41.34 50.19,41.42 49.99,41.36 49.91,41.2 49.91,41.2 47.85,37.18 47.85,37.18 47.77,37.02 47.83,36.83 47.99,36.75 47.99,36.75 47.99,36.75 47.99,36.75 48.15,36.67 48.34,36.73 48.43,36.89 48.43,36.89 50.49,40.91 50.49,40.91 50.49,40.91 50.49,40.91 50.49,40.91ZM57.99,41.07C57.9,41.23 57.7,41.28 57.55,41.19 57.55,41.19 57.55,41.19 57.55,41.19 57.39,41.1 57.34,40.91 57.43,40.75 57.43,40.75 59.69,36.84 59.69,36.84 59.78,36.69 59.98,36.63 60.13,36.72 60.13,36.72 60.13,36.72 60.13,36.72 60.29,36.81 60.34,37.01 60.25,37.17 60.25,37.17 57.99,41.07 57.99,41.07 57.99,41.07 57.99,41.07 57.99,41.07ZM68.54,58.99C68.54,60.12 67.62,61.04 66.49,61.04 66.49,61.04 66.49,61.04 66.49,61.04 65.35,61.04 64.43,60.12 64.43,58.99 64.43,58.99 64.43,50.01 64.43,50.01 64.43,48.87 65.35,47.95 66.49,47.95 66.49,47.95 66.49,47.95 66.49,47.95 67.62,47.95 68.54,48.87 68.54,50.01 68.54,50.01 68.54,58.99 68.54,58.99ZM43.56,58.99C43.56,60.12 42.64,61.04 41.51,61.04 41.51,61.04 41.51,61.04 41.51,61.04 40.38,61.04 39.46,60.12 39.46,58.99 39.46,58.99 39.46,50.01 39.46,50.01 39.46,48.87 40.38,47.95 41.51,47.95 41.51,47.95 41.51,47.95 41.51,47.95 42.64,47.95 43.56,48.87 43.56,50.01 43.56,50.01 43.56,58.99 43.56,58.99ZM52.5,69.27C52.5,70.4 51.58,71.32 50.45,71.32 50.45,71.32 50.45,71.32 50.45,71.32 49.31,71.32 48.4,70.4 48.4,69.27 48.4,69.27 48.4,60.29 48.4,60.29 48.4,59.15 49.31,58.23 50.45,58.23 50.45,58.23 50.45,58.23 50.45,58.23 51.58,58.23 52.5,59.15 52.5,60.29 52.5,60.29 52.5,69.27 52.5,69.27ZM59.62,69.27C59.62,70.4 58.7,71.32 57.57,71.32 57.57,71.32 57.57,71.32 57.57,71.32 56.43,71.32 55.51,70.4 55.51,69.27 55.51,69.27 55.51,60.29 55.51,60.29 55.51,59.15 56.43,58.23 57.57,58.23 57.57,58.23 57.57,58.23 57.57,58.23 58.7,58.23 59.62,59.15 59.62,60.29 59.62,60.29 59.62,69.27 59.62,69.27ZM54.01,38.78C49.01,38.78 44.9,42.58 44.35,47.46 44.35,47.46 63.66,47.46 63.66,47.46 63.11,42.58 59,38.78 54.01,38.78 54.01,38.78 54.01,38.78 54.01,38.78ZM49.65,44.04C49.2,44.04 48.85,43.68 48.85,43.24 48.85,42.8 49.2,42.44 49.65,42.44 50.09,42.44 50.45,42.8 50.45,43.24 50.45,43.68 50.09,44.04 49.65,44.04 49.65,44.04 49.65,44.04 49.65,44.04ZM58.38,44.04C57.94,44.04 57.58,43.68 57.58,43.24 57.58,42.8 57.94,42.44 58.38,42.44 58.82,42.44 59.18,42.8 59.18,43.24 59.18,43.68 58.82,44.04 58.38,44.04 58.38,44.04 58.38,44.04 58.38,44.04Z"/> <path android:name="gear" android:fillColor="#1570a6" android:pathData="M57.83,54.26C57.83,54.26 57.56,53.63 57.56,53.63 57.56,53.63 58.18,52.23 58.13,52.17 58.13,52.17 57.3,51.37 57.3,51.37 57.25,51.31 55.84,51.95 55.84,51.95 55.84,51.95 55.2,51.69 55.2,51.69 55.2,51.69 54.62,50.27 54.54,50.27 54.54,50.27 53.38,50.27 53.38,50.27 53.3,50.27 52.77,51.7 52.77,51.7 52.77,51.7 52.13,51.96 52.13,51.96 52.13,51.96 50.69,51.35 50.64,51.4 50.64,51.4 49.81,52.21 49.81,52.21 49.76,52.26 50.41,53.64 50.41,53.64 50.41,53.64 50.14,54.27 50.14,54.27 50.14,54.27 48.69,54.83 48.69,54.91 48.69,54.91 48.69,56.05 48.69,56.05 48.69,56.13 50.15,56.65 50.15,56.65 50.15,56.65 50.42,57.28 50.42,57.28 50.42,57.28 49.79,58.68 49.85,58.74 49.85,58.74 50.67,59.54 50.67,59.54 50.73,59.6 52.13,58.96 52.13,58.96 52.13,58.96 52.78,59.22 52.78,59.22 52.78,59.22 53.35,60.64 53.43,60.64 53.43,60.64 54.59,60.64 54.59,60.64 54.67,60.64 55.2,59.21 55.2,59.21 55.2,59.21 55.85,58.95 55.85,58.95 55.85,58.95 57.28,59.56 57.34,59.51 57.34,59.51 58.16,58.7 58.16,58.7 58.22,58.65 57.56,57.27 57.56,57.27 57.56,57.27 57.83,56.64 57.83,56.64 57.83,56.64 59.29,56.08 59.29,56 59.29,56 59.29,54.86 59.29,54.86 59.29,54.78 57.83,54.26 57.83,54.26ZM53.99,57.12C53.05,57.12 52.29,56.37 52.29,55.45 52.29,54.54 53.05,53.79 53.99,53.79 54.92,53.79 55.69,54.54 55.69,55.45 55.69,56.37 54.92,57.12 53.99,57.12Z"/> </vector>
  23. Dany Marmur

    How do I check for empty rows in a string grid?

    So fix the actual problem before asking/looking for a workaround. Asking us to help you by-pass problem that you created it not constructive. Oh, ah! Just realized i wrote an "heffernandic" post!
  24. AlexBelo

    Is this C++ builders new FORUM ???

    🙂. But (IMHO) dropping of official forum was really wrong decision. In old days (since ~2000 year) I usually started my day from browsing of official newsgroups (in good old plain text and very handy tree format of messages) and I still have a huge collection of answers in "how to ..." style from famous specialists like Peter Below, Remy, and many others. After end of NG civilization there is no default place where I can get help from gurus and be well informed. Yes, you can say that there are many such places but "many" means "scattered" in this context ...
  25. ConvertToUTF8.7z Using the ZIP2 component (but unit can be renamed to Zip to use the Delphi default) for creating backup copies. Finished 3000+ files in 90 seconds in our project at work. It checks for BOM existence; so if you have actual UTF8 files without BOM it can cause issues.