Jump to content

DelphiUdIT

Members
  • Content Count

    667
  • Joined

  • Last visited

  • Days Won

    14

Everything posted by DelphiUdIT

  1. I don't know where you catch those info. Like I told, my experience, I nevere see an executable (service or not service) stay live after "termination". In my developer machine runs only basic services, and i start and stop programmatically the services that I need project based (normally 4/5 services for 4 times per days). May be is a "design basis" by Windows for some kinds of executables or (more likely) some thread or method of the executable is "hanging". 20 seconds is historically the standard timeout within which a closing service is killed by the system, if it does not terminate itself (I remember a value like "KillServiceTimeout" in the registry that keeps the default time, but it could be called something different).
  2. @sp0987 And, what are your needs ? If the service maintain the zombies for some seconds ... it is so, but really I never see this. When I stop a service the EXE disappear from task manager (of course, if the application has no pending things like threads waiting). If you want that the same exe doesn't run more then one time, use a mutex at the start of the application: var hMutex: THandle; // Creates a unique synchronized object in the operating system hMutex:=CreateMutex(Nil,False,'Global\MyApplication'); // Checks that the object is not already 'owned' by some other process (program instance), // in which case exits the program if (WaitForSingleObject(hMutex,0) = wait_TimeOut) then exitprocess(255);
  3. SSL certificate of this site is expired ...
  4. DelphiUdIT

    Default() and subrange types

    For each data whose value I need to know for sure before using it, I perform an assignment operation of a certain value at the creation of any "parent" or at the creation of the application. I had some problems with the "default" in the past, so I equipped myself and I do it like this. I know it's probably excessive, but so far I haven't had any issues.
  5. DelphiUdIT

    New Book Delphi Quality-Driven Development

    For your knowledge, I try to buy e-copy from your link (Italy, via CC) but the payment was refused (seller: DP Info).
  6. DelphiUdIT

    Documentation links on indyproject.org not working

    Yes, that link is working, when you unzip it with Windows Explorer it gives an error. With 7-ZIP it works right. Other links from Indy Wiki are not fully functional.
  7. DelphiUdIT

    Documentation links on indyproject.org not working

    oops ---
  8. DelphiUdIT

    Documentation links on indyproject.org not working

    All links seem not full working. Look this, extract with 7-ZIP (Explorer give me an error): https://github.com/IndySockets/Indy/files/7782730/IndyDocs_10.1.5.0_HtmlHelp.zip
  9. DelphiUdIT

    Documentation links on indyproject.org not working

    Indy Wiki is here, and is working: https://github.com/IndySockets/Indy/wiki And if you have Rad Studio installed you have the offline documentation (Help/Third-Party Help/Indy Library Help)
  10. What is the target of your application ?
  11. This is available on OpenSSL 1.0.2u, the last SSL available that works on Indy bundle with Rad Studio. You are using SSLv3 this is deprecated and should not be used. YOU MUST USE TLSv1.2. Set IOHandler to use TLSv1.2 (in the options): SSLVersion := [sslvTLSv1_2]
  12. In Indy, the valid chipers type accepted by a server connection is setting through the TIdSSLOpenIOHnadlerServer.Options.ChiperList property, for example: //For TLSv1.2 handshake CipherList := '!EXPORT:!LOW:!aNULL:!eNULL:!RC4:!ADK:!3DES:!DES:!MD5:!PSK:!SRP:!CAMELLIA'+ ':ECDHE-RSA-AES128-GCM-SHA256'+ ':ECDHE-RSA-AES256-GCM-SHA384'+ ':ECDHE-RSA-CHACHA20-POLY1305'+ ':ECDHE-ARIA256-GCM-SHA384'+ ':ECDHE-ARIA128-GCM-SHA256'+ //Weak but used in old products ':ECDHE-RSA-AES256-SHA384'; Search in the property of DataSnap components for IOSSLHandler and set this property. This is correlated to "certifcate file" and "certificate private key" (CertFIle and CertKey property of the Handler).
  13. You can try also with https://prog.olsztyn.pl/paslibvlc/ It has the ability to play stream audio and video, but you need VLC installed on system.
  14. DelphiUdIT

    Could not load OpenSSL library.

    But not this time .... Datasnap is working with Indy REPO too .... there are some things to do, expecially one ... was missing from my (sparse) instructions and I never had any issue (never used DataSnap). These three lines must also be copied into the "library path" and DataSnap will "start" working again. Start from previous link posted.
  15. DelphiUdIT

    Could not load OpenSSL library.

    I think was better to create a new topic under "Indy" section. Your issue has nothng to do with this topic. But, if you install new Indy from official repo, you have to build it with all the modifications about the packages and you must rebuild also the optional components, wich sources are distribuited with Rad Studio and not present in Indy REPO. Read this for more information: Take care that replace the Indy bundle with Indy REPO can invalidate some components (from Embarcadero and from third parties). If you have third parties sources you can recompile and rebuild them. EMS components and Datasnap use Indy under the hood ans so is possible that they don't work with new version of Indy.
  16. But they produce SSD too, and the test that they made were about their SSD. I don't think they have any interest in "cheating" on the results. It could be that technology will move the "hand" one way or the other over time.
  17. https://www.kingston.com/it/blog/pc-performance/what-is-ram-disk
  18. It could be that an alien has taken over his body... or his account....
  19. DelphiUdIT

    Sqlite Delphi 12 linker error

    I really don't know if this can help. but you have tried to do "REVERT" action:
  20. Be careful when interpreting "objects", whether they are properties, variables, or other. Granted that as you say there is only one assignment, you do not know what an assignment can trigger. And the same encapsulation paradigm makes sure that the true nature of the property is hidden from you (it can be a reading of a variable, a writing, a function or triggering a series of delayed and events). Try to think what "triggers" a simple assignment of a property such as a connection to a DB (...Connected := True;). It is necessary to document yourself, in the absence of experience. This must always happen when dealing with a new topic.
  21. DelphiUdIT

    Event handler in thread

    Don't worry, when you feel the need just ask. Someone will help you. You'll find that Delphi (Pascal) will help you on the way. Also try to have a quick read about the various topics in the various manuals available, there are several available even for free. You can also do a search on the forum and you will find several links about this. Embarcadero's online wiki can also help you. Enjoy and good works.
  22. Look at this: https://docwiki.embarcadero.com/Libraries/Athens/en/Vcl.Forms.TCustomForm.ModalResult Like @Lajos Juhász said, if you set the ModalResult at value different from mrNone the Form will close when the actual procedure will exit;
  23. DelphiUdIT

    Event handler in thread

    Compared to microcontroller programming, you have to think of an application in Delphi as if it were a stack for microcontroller services: like a Bluetooth stack or a TCP/IP stack. You are building something that has to communicate with other entities, you are building a stack.... Your program has to communicate with all the related entities, starting from the individual "components" that you use. You have to understand that your program is part (if you build it for Windows, but the same conditions apply for other OSes) of an ecosystem that includes some basic functional rules. In your case of a microcontroller, I don't think you have built a TCP/IP stack from scratch, you will use one of those available (among other things, all manufacturers provide at least one TCP/IP stack). With that stack, your code has to "talk" to it and interact. And "things" happen that are not under the control of your code, even beyond the IRQs. With an application in Delphi it is the same, only that instead of interacting within an island (your microcontroller) you are acting within a continent (the Windows ecosystem). You have to learn the rules and basic functions, as you learned to use a TCP/IP stack. But, the world is more bigger than an island .....
  24. DelphiUdIT

    Very large h file to pas

    You need a wrapper in pascal from "HCNetSDK.h" and some dlls: - HCNetSDK.dll - ssleay.dll - libeay.dll - zlib.dll - libssl-1_1-x64.dll for new SDK I think - libcrypto-1_1-x64.dll for new SDK I think Depends on video machine you want to connect you need other dll too, but all of them are in the SDK (may be, in the old sdk they were inside). And of course, all the samples are in C or C# but I think you can copy how they do the things and replicate in Delphi. Of course there is some work to do. EDIT ... or I understand bad and you are talking about CHET ?
  25. DelphiUdIT

    Very large h file to pas

    The last that I had from HikVision was in pure C (and with comments in Chinese ....). They had a C# wrapper for demo project.
×