Jump to content

DelphiUdIT

Members
  • Content Count

    732
  • Joined

  • Last visited

  • Days Won

    17

Everything posted by DelphiUdIT

  1. 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.
  2. 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.
  3. https://www.kingston.com/it/blog/pc-performance/what-is-ram-disk
  4. It could be that an alien has taken over his body... or his account....
  5. DelphiUdIT

    Sqlite Delphi 12 linker error

    I really don't know if this can help. but you have tried to do "REVERT" action:
  6. 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.
  7. 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.
  8. 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;
  9. 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 .....
  10. 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 ?
  11. 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.
  12. DelphiUdIT

    Unicode UTF8 with coded char to char

    This can help ? : https://stackoverflow.com/questions/71288428/encode-string-from-json-utf-8
  13. DelphiUdIT

    Delphi + Windows + isWine

    This is a method to detect if it's running under wine emulation. Look this: https://stackoverflow.com/questions/27413641/how-to-detect-if-delphi-program-runs-in-playonmac
  14. This is the right place, see: https://docwiki.embarcadero.com/Libraries/Athens/en/System.IOUtils.TPath.GetHomePath So your files go to on the home directory or in the subfolder of that like you see.
  15. Have you tried in your deployment settings to set the remote path to: '.\databases'
  16. DelphiUdIT

    Specification IEEE P1363

    I don't have any pubblication about that, but this site use and have an implementation about this standard, may be can help: https://github.com/miracl/MIRACL/tree/master/source/p1363
  17. Hi, if your goal is to be able to "take control" of the project, modify it and implement it with new features, I must warn you that it is an operation that even a senior programmer generates some anxiety. Pascal, and DELPHI in particular, helps you in this and therefore your work will certainly be "lighter". To be able to do this, in the absence of any information about you, there is a series of activities to be carried out preliminarily (what you call a roadmap): 1) Know the basics of Pascal, and by basics I mean the structure of a Pascal program, in particular how it is implemented in Delphi, and its composition; 2) Definitions, variables, constants; 3) Operators (logical, mathematical); 4) Assignments and comparisons; 5) Numbers, characters, variants; 6) Vectors and matrices; 7) Structured data, sets; 8 ) Procedures and functions; 9) Pointers; To then move on to OOP: 10) Basic OOP concepts (encapsulation, abstraction, inheritance, polymorphism); 11) Classes, constructors and destructors; 12) Exceptions; 13) Properties and events; 14) Multithreading; 15) Life and purpose of "variables" or object instances; 16) Memory management; 17) Files, streams; 18) RTL and RTTI; xx) Generics and collections; and lastly (so to speak) to the VCL, if you want to stay in the classic Windows application or in FMX if you want to go towards the environment more dedicated to the Mac, Linux and mobile worlds (Android and IOS), also functional for Windows: 19) Basic VCL classes (TObject, TPersistent, TComponent, TControl); 20) Ownership and parentship; 21) Graphics: TCanvas and handles; 22) Generics and collections; Another topic, really expanded and I would say almost a world in itself are databases ... Delphi has a good library (FireDac) that allows very easy access to most modern and not modern databases. Within all this there should also be a smattering of how the IDE works, already as a "ZERO" chapter as it will be needed to be able to carry out all these points. In conclusion I do not know if there is a specific publication that allows you to do all this, if not it will be necessary to read various publications to allow you to operate safely in the project. This is as far as I think it is necessary, maybe someone else certainly has some additional information or a different path in mind. If the forum members want to provide you with some links on this ... Bye
  18. Normally it works the other way around... you write: {$IFDEF FPC} .... for FPC {$ENDIF} {$IFNDEF FPC} .... for DELPHI {$ENDIF} or {$IFDEF FPC} .... for FPC {$ELSE} .... for DELPHI {$ENDIF}
  19. You can start from here: https://lp.embarcadero.com/ObjectPascalHandbookD11?utm_source=blog It is a free book from Marco Cantu. Other members of this forum may suggest you others books or resources. EDIT: and of course install the community edition of Rad Studio from here (if you are eligible for it): https://www.embarcadero.com/products/delphi/starter N.B: Take care about license, limitations and legal issue
  20. DelphiUdIT

    TLS v1.3

    If you use the OpenSSL 1.1.1 or 3.1.x, I suggest to use this: //CipherList are used in TLSv1_2 CipherList := '!EXPORT:!LOW:!aNULL:!eNULL:!RC4:!ADK:!3DES:!DES:!MD5:!PSK:!SRP:!CAMELLIA'+ ':ECDHE-RSA-AES256-GCM-SHA384'+ ':ECDHE-RSA-AES128-GCM-SHA256'+ ':ECDHE-RSA-CHACHA20-POLY1305'+ ':ECDHE-ARIA256-GCM-SHA384'+ ':ECDHE-ARIA128-GCM-SHA256'+ //Weak !! but necessary for old products ':ECDHE-RSA-AES256-SHA384'+ ''; //CipherSuites are used in TLSv1_3 CipherSuites := ''+ 'TLS_AES_256_GCM_SHA384'+ ':TLS_CHACHA20_POLY1305_SHA256'+ ':TLS_AES_128_GCM_SHA256'+ ':TLS_AES_128_CCM_8_SHA256'+ ':TLS_AES_128_CCM_SHA256'+ ''; If you use only old OpenSSL 1.0.2u (limited to TLS 1.2): 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 ':ECDHE-RSA-AES256-SHA384'+ //To use this two you must generate the DHPARAMS file with OpenSSL utility //':DHE-RSA-AES128-GCM-SHA256'+ //':DHE-RSA-AES256-GCM-SHA384'+ '';
  21. DelphiUdIT

    Enable Discussions on github ?

    My personal opinion is that having too many discussion points on a single topic is counterproductive. Having n. Forums, githubs and maybe personal blogs could be dispersive for the information and discussions that you want to "carry forward". And in this particular case, the main actor that is Remy should disperse a lot of energy on a multitude of discussion "sites" (which in fact he already does). The idea is not "evil", but there are already several possible discussion points (for example one of these is this forum) with a dedicated section.
  22. DelphiUdIT

    TLS v1.3

    You will have the options enabled (TIdOpenSSLIOHandlerServr.Option) with: TLSVersionMinimum := TIdOpenSSLVersion.TLSv1_2; TLSVersionMaximum := TIdOpenSSLVersion.TLSv1_3; If you want you can test with SSL Labs https://www.ssllabs.com/ssltest/ the basic HTTPS server made with Indy 'cloud.dyn-o-saur.com' (it's down now, tomorrow in the morning (CET) will be online again). It works with OpenSSL 3.1.4 No, I don't have any. I always deleted the bundle version and install the github version. The bundle compiled files (Bpl, Dcu, etc ...) are in the same paths of delphi system libraries, I think you must move them from there. So you must maintain them and the github version switching the windows registry. I think that @shineworld has done those steps.
  23. DelphiUdIT

    openssl dll problem

    As far as I know, Windows loads DLLs without checking if the module is already loaded in memory ONLY if the DLLs are "pointed" with the full path. So in his case one of the solutions I see is that his program loads the 2005 DLLs of your old modules first and then the new ones of 2019 with Indy with the full path (maybe with the new DLLs in a directory outside the system path). He must therefore prevent Indy from loading its libraries first. Was there (from memory) the possibility of loading Indy DLLs in a delayed way ?
  24. DelphiUdIT

    How to open form2 then close form1

    Yes, you are right, I expressed myself badly. I meant Main Form. Since he wrote that he was a beginner I implied that Form1 was both the first Form and the main one (it is generally both the first Form and the main one when you create a new project with Delphi). But of course is better to talk with the correct terms.
  25. DelphiUdIT

    How to open form2 then close form1

    Remember, YOUR FIRST FORM should always be alive, don't close, free or release it. If you close your FIRST Form, the application also terminate. In your example, when you'll exit from Form2 your application will close. And it would have closed even if I had used the Show method instead of ShowModal. If you need to "hide" the main Form use the Hide method. For other Forms (not MDI) you can also use the Close method ... as a default action the Form will be hidden (i.e. put in HIDE state). https://docwiki.embarcadero.com/Libraries/Athens/en/Vcl.Forms.TForm Bye
×