Jump to content

HeartWare

Members
  • Content Count

    22
  • Joined

  • Last visited

Community Reputation

4 Neutral

Technical Information

  • Delphi-Version
    Delphi 11 Alexandria
  1. That won't detect a .PNG file with .JPG content (it will merely detect that it is some form of picture).
  2. Something like this (for Image Formats - the ones I detect for): Using a TBytes Helper "StartsWith" and "Contains" - but should give you an idea. Not 100% but enough for my usage, and should allow you to adapt the methodology to your own needs.
  3. HeartWare

    Blocking hackers

    Unfortunately it's an uphill battle. You can't win. Whatever you do, they will find a way around it, as you cannot differentiate between legal individuals and a mass-request from different IPs. They can hit you from such diverse places as Australia, India, Brazil, Germany and Canada at the same time, and you have no way of knowing if they are from the same person. Is there a pattern in their requests? Do they go alphabetically? If so, you can do heurestics detection (but they can circumvent this by going random). You can also limit the speed with which you accept requests (ie. a minimum of 1 min. between requests), but they will soon detect this and space it out to a random value between 1:10 and 1:30, and you risk annoying your legitimate users.
  4. HeartWare

    What new features would you like to see in Delphi 13?

    Ooooh - someone else had the same idea 🙂
  5. HeartWare

    What new features would you like to see in Delphi 13?

    Which is why I suggest a mode that works internally in 96dpi but shows (and allows edit) in the monitor's native DPI. Yes, it will mean that you are restricted to placing components on a 2x2 grid if your monitor is at 200% and the grid will be unsymmetrical if you're at 150%, but since all components will be locked into the same grid, you can still align the positions and sizes.
  6. HeartWare

    What new features would you like to see in Delphi 13?

    They should do what we did in our designer. Always work internally (and store) values for 96dpi (100%) in the designer, only scaling it up for display. The issue comes if you scale from (f.ex.) 150% to 200% and then back to 100%. But you can always scale correctly if you go via 100%, ie. to go from 150% to 200%, you go 150% -> 100% -> 200%, then you can always get back to 100%. That is my wish - An IDE designer mode that works in 100% (96dpi) but scales the visual designer to the monitor's DPI (yes, that will affect your pixel-perfect alignment in 150% during design, but it will be pixel-perfect in whatever scale the final monitor is at, since everything can always be consistently scaled UP from 100% to any DPI). And if your .DFM is stored in 100% values and you start the program on a 150% monitor and then move it to a 200%, it will be scaled back to 100% before being scaled up to 200%.
  7. HeartWare

    wuppdi Welcome Page for Delphi 11 Alexandria?

    Download links give "404 Not Found" Now, suddenly, they work...
  8. HeartWare

    IMAP using TIdIMAP4

    This is the communication log (>> is me sending, << is receiveing)
  9. HeartWare

    IMAP using TIdIMAP4

    Thank you very much, Remy. I have now come a bit longer, but it still fails (maybe I'm feeding it the wrong "secret key"). I have this code now: but it fails in IdIMAP4.PAS at this line: And ASASL.Service = 'XOAUTH2' and S = 'user=<MailBox@domain>'#1'auth=Bearer <Secret Key>'#1#1 and AClient.LastCmdResult.Code = 'NO' When I generated my tokens/keys according to Outlook documentation, I got two values. I have tried with both of them, and they both fail at this spot. Is there a way where I can generate the token needed in code somehow, or do I need to use the value I was given via the online web system?
  10. HeartWare

    IMAP using TIdIMAP4

    Thank you, Remy. I have downloaded the files, explicitly added the necessary .PAS files to my project (to force the use of these instead of the Indy10 in my RAD Studio installation), and added the following lines: after the "UseTLS" line. I assume I need to assign something to SASL.UserPassProvider and/or call some of the Autheticate functions. But what should I put into the parameters of the Authenticate calls? Host/Protocol I assume will be outlook.office365.com and 993 (?) but what about "ProtocolName" and what do I send/receive in VirtualResponse? Where do I put the base64 encoded string with user and bearer token? In OnGetAccessToken, I assume? What final value from SASL should I assign to IMAP.Password after authentication? Or does that happen internally, due to my adding SASL to the IMAP's SASLMechanisms? Can you help me out, please? 🙂
  11. HeartWare

    IMAP using TIdIMAP4

    I currently have the following code: but when I try to connect to Microsoft Office365 (at outlook.office365.com) I can't get it to work (get "LOGIN failed" exception). Is there some other property of the TIdIMAP that I need to set? And what exactly should I put into the UserName/Password fields? Anyone have some working code that connects to outlook.office365.com using TIdIMAP4 ? Keld R. Hansen
  12. HeartWare

    wuppdi Welcome Page for Delphi 11 Alexandria?

    Now that Delphi 11.3 has been released, do you have an estimate on when you'll be able to release a version of your plugin that supports 11.3?
  13. They have, and they can: TYPE TMyClassHelper = CLASS HELPER(TAncestorHelper) FOR TAncestor However, RECORD HELPERS cannot be inherited...
  14. HeartWare

    wuppdi Welcome Page for Delphi 11 Alexandria?

    How do you make a sub-folder to an already existing folder in Favorite branch? Ie. I have a Favorite folder "Utils" under which I want to sub-divide my projects in "GUI" and "CLI", f.ex. When I click the "+" button, it always creates the new folder directly under Favorites. And when I try to Drag'n'Drop it into the correct folder, it just drags it to another position within the Favorites branch. Also, when I use Drag'n'Drop (after enabling it) from one favorite folder to another, it doesn't operate on the project I'm dragging, but always takes the top one from the source folder. Also, when Drag'n'Dropping, it should MOVE the project instead of COPYing it (unless you hold down Ctrl when you drag - then it is a COPY operation, as per the standard Windows Drag'n'Drop). I'm really getting to like this extension, but it still has a few rough edges 🙂
×