Jump to content

DelphiUdIT

Members
  • Content Count

    611
  • Joined

  • Last visited

  • Days Won

    11

Everything posted by DelphiUdIT

  1. DelphiUdIT

    Delphi and "Use only memory safe languages"

    In one of the document they say: Really ? JS is a memory safe languages ? Who exposed this ... You can use a variable before declared ("hoisting") ... this is safe memory language ?
  2. DelphiUdIT

    ISAPI and regedit

    Like I told in prev. post ("Autorizzazioni" is like "Permissions" in Italian). But HKLM is accessible (the OPEN in READ mode seem to be OK from her), for this she must see the ERROR code in the query function ... is about "key not found" ? or "access right" ? or ???? This is sure a new security counter measure from new Windows Server (or in the IIS) and should be interesting to know how the rights are on site.
  3. DelphiUdIT

    ISAPI and regedit

    She is try to reading the HKLM, this key is always present and is the same for all process (of course not in a virtual machine).
  4. DelphiUdIT

    ISAPI and regedit

    Value := RegQueryValueEx(Key,PChar(strValueName),nil,nil, @Buffer,@Size); This function return a value. Log this value, that can show you what is the EXACTLY the problem. From line 11867 in WinApi.Windows.pas (Delphi Athens 12 patch 1) you'll find what's means that code. Probably is like @Kas Ob. say, you cannot read HKLM registry from ISAPI. If that is the problem, you must transfer all the key you need from HKLM to HKCU (or the right root key). P.S.: another solution is that you give full access right to the registry key that is interested to your read, use "regedit" for this and with right mouse click on the key choose "Autorizzazioni" (I think you are Italian 😉).
  5. DelphiUdIT

    ISAPI and regedit

    What kind of ERROR report these function ? May be that information can help you.
  6. DelphiUdIT

    Indy & OpenSSL 1.1.1 & TLS 1.3

    It is not strictly related to the use of TLS 1.3 but rather to the use of the new SSLs (we are now at 3.x), given that the old ones (which Indy still uses) have been deprecated and therefore could represent a security risk. It must be said that with the PR version of the Indy repository which supports OpenSSL 1.1.1, you can also use OpenSSL 3.1.x not for all the functions but for a good part (which is the one that interests the SSL functionality of a WEB server for example). Actually I have a WEB server with Indy and SSL 3.1.4 on Windows.
  7. DelphiUdIT

    Embarcadero Sample Debugger Visualizers

    May be is related to this https://docwiki.embarcadero.com/RADStudio/Sydney/en/Visualizers but I don't think that there are the source code available. There is a ToolsApi about that: https://docwiki.embarcadero.com/RADStudio/Athens/en/Debugger_Visualizers
  8. DelphiUdIT

    Import .NET Assembly list is empty

    Uhmm, may be I'll probably say bullshit, but you can import assemblies from .NET only if they are flagged as COM compatible (they must be compiled in this way from Visual Studio). Others way are to use some instruments like CrossTalk or also JCL (from Jedi project). But I don't think that you will able to import like a component, only to call them like a DLL. You can also use some open source software like " ILSpy, the open-source .NET assembly browser and decompiler" to analize the .NET DLL. OF COURSE YOU MUST HAVE THE RIGHTS TO DO SO !!!
  9. There are already know components on the fly without to work for new ones. For communications, one of the standard that works on serial COM, TCP and UDP is ModBus. With that you can communicate whatever you want, ghost I/O, virtual I/O, GPIO and others. Surely there is a ModBus implementation for STM32 (this one for example: https://github.com/nimaltd/master-modbus ). But, if you choose a STM32 with BLE, also BLE stack should be and you can create GATT service (so no physical connection for communication). You miss to read my full post: the communication is simple, the construction of full environment is more complex. EDIT: of course, for Delphi side there are also ModBus implementations (I think I posted here about this).
  10. Communicate with STM32 device is one thing, program a STM32 device is TOTALLY another thing. To program a STM32 (in IDE way) is like to construct a "Delphi Builder" for c language (I mean like Dev C++ that is made with Delphi) mixed with typical automation / building functions and so on. Instead, to communicate with STM32 is simple. There are many options. But I (we ?) don't understand what is your objective ? I think you desire a environment like some "Automation Builder" and with that you want to program a STM32 device, but this is like construct an new IDE and not a simple communication. Other solution is to have a "base" core support with API in STM32 and you construct you application around those API.
  11. DelphiUdIT

    A native VCL, and not Windows-based, TComboBox control.

    Seems that you populate your controls for an automation / building application. It' necessary to view the values with a combobox ? You can use a label (or other simple control) for every field and when a user click in one of them you can propose a combobox to change the present value or numeric keyboard or others custom control.
  12. DelphiUdIT

    Delphi Upgrade from 2007 / 2010 to XE5

    I don't know if XE5 is the useful tool for producing WEB apps. But it was released over 10 years ago, I think that since it involves updating software perhaps you should upgrade to the latest version (or at least to a more recent version). now in addition to the TRIAL version which allows you to carry out a time-limited trial of the Architect version of Rad Studio, there is also the Community Edition version which is free within certain limits: link for the license and conditions of use: https://www.embarcadero.com/products/delphi/starter In this link you can see the features of the individual commercial editions: https://www.embarcadero.com/docs/rad-studio-feature-matrix.pdf I don't think you can use the XE5 if you have bought XE3. You must discharge it but probably the license will not be activated during installation. P.S.: take care that Embarcadero is updating all they server and services, so is possible that the community edition is not installable at this moment.
  13. DelphiUdIT

    Use TIdMessage to construct rfc 5322 message?

    RFC 5322 was updated to RFC 6854 in 2013. In the Indy sources the last comment is on the RFC 2822 regulation (obsolete and replaced by RFC 5322). However, it is known that the comments have not been updated, nor have the existing manuals and docs been updated. The only one who could answer you is @Remy Lebeau This is also a discussion about this argument: https://stackoverflow.com/questions/25576292/indy-smtp-server-how-to-detect-cc-bcc-recipients
  14. DelphiUdIT

    Monitor Windows application and restart if needed

    Inside the program I have a thread that runs independently and keeps the timing of a cyclical event controlled, let's call it the end of the processing sequence (normally a processing cycle lasts around 150 ms.). In all my programs, I generally work on events, the application must react to a given event (reading data from a PLC, receiving an image from a camera, etc ...) and if this does not start the thread goes to monitor the device (or devices) from which input is expected to verify that it is online (if there is no "keep alive" possible). Then every certain time I launch a simulated event to verify that the processing chain is up and running. All devices that have the capability (even devices intended as software, for example third-party applications), MUST launch a "keep alive" towards the application (and also the opposite) to confirm the online operating status: the KEEP ALIVE can happen via TCP or UDP, via physical inputs or various other mechanisms (for example with some third party applications there are COM Object events). In addition to all this, the thread also checks the memory used by the program to verify that it does not exceed certain limits (when a program runs for months without being turned off even a single byte of leak "every now and then" becomes a problem), and the temperature of the CPU package. When possible, following a persistence of high temperature (> 92 degrees) slows down the entire process to check for anomalies in the thermal dispersion of the PC. The application is launched from a ".CMD" batch file which checks the return value of the application and if it is different from $127 (for example) it relaunches it again. The monitoring thread or any other unhandled exception generates an EXITPROCESS($0) or sets the EXITCODE to $0 (depending on how severe the detected anomaly is). The normal exit of the program instead generates an EXITCODE at $127. The same monitoring thread sends an email and writes a log to report the anomaly.
  15. HOW TO DO IT ? Insert this in the code: {$WARN BOUNDS_ERROR ERROR} Refer to: https://docwiki.embarcadero.com/RADStudio/Athens/en/Warning_messages_(Delphi) P.S.: by now this will be a standard directive in all my code
  16. LOOOL, every time is an improvement ...
  17. Uhmm, I think there are good... actually very good reasons why "errors" are generated (AND SHOULD BE) in "Integer and Unsigned Integer" cases and the like. The first and most trivial case is the comparison operation. Comparing (or assigning) integers and unsigned integers is a huge mistake (i.e. it happens in the example from which the topic was generated). I think this is enough to define that there cannot be operations with "automatic" type conversion in these cases. Forcing the operation (therefore through typecasting) is the path that should be followed: the programmer knows what he is doing and solves the problem by forcing the operation. Already the definition of "-1" could create some "stomach ache" (it is an Italian way of saying that it creates "discomfort"). Those who programmed in assembler certainly remember the old Intel CWD-type instructions... A runtime, in Delphi 12 an Error was generated at the second instruction (like you told, "more dangerous") only in Debug mode ('Range check error'), but during compilation many warnings are generated regarding its use. Maybe the Warnings are not enough, they should be switched to error... HandleInteger(B); It is for this reason that it should not be allowed to carry out automatic conversions, already at the compiler level. I use and love Delphi, among other things, because when you write code and compile it you have a good certainty (I said "good" not "sure") that the code will run error-free, at least for basic errors.
  18. May be this is the cause:
  19. Mat be you are using it with UINT32 parameter or something like that ?
  20. DelphiUdIT

    Unknown Delphi Version

    May be there is a little trick to discover something: - open a "dproj" file and search for a "<DCC_UsePackage>" section, inside that should be "Intraweb_xx_D10_3" for example, this means that its developed with Delphi 10.3. Look that and you'll find a version ... - from Delphi XE7 you'll find "emsclientfiredac", inside the same section, if the version used is a Enterprise (or Architect) Version. These informations are not official and not sure, but may be a starting point.
  21. Sorry, but I don't understand ... you have found the issue (in the UTC_Time_Decode function) and change the code to read 4 digit (that you select based on the length of 12 or 14 characters). So how can we help you ?
  22. DelphiUdIT

    The GetIt server is back online - With the 12.0 Patch 1

    Pay attention to the antivirus, it may block the ZIP because it thinks it has been compromised.
  23. DelphiUdIT

    Ummmm. What!!

    This has happened to me in the past when in the source files (even those called in the Uses) there were strange characters or the line ending was not CRLF. I also saw some anomalies when the declared class name and the implemented one (in the methods) differed due to the character case. But I never delved into how much it all impacted the code. Since that time I have made sure of both CRLF characters, especially from what is copied / pasted from sources external to the IDE by first copying into a text editor and forcing the thing and then into the IDE.
×