Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation on 03/07/23 in all areas

  1. New blog post: http://www.danieleteti.it/post/radstudio-11-3-alexandria-my-top-3
  2. Stefan Glienke

    TestInsight 1.2 released

    Uploaded the latest release - 1.2.0.4 - you can download from https://files.spring4d.com/TestInsight/latest/TestInsightSetup.zip
  3. I've taken over a legacy project from a friend, that needs a structural redesign. The application basically does file analysis and modification. It is currently a GUI app with everything built into the main executable. I would like to split that and am thinking of multiple EXEs. One that resembles the GUI, a console application that executes one particular task. On top of that, it needs a Windows service to execute scheduled tasks automatically, if no user is logged in. What is the best practice to accomplish this? Bi-directional communication is a must and could be done with custom messages and console output. Any other thoughts? Plugin system via DLL? Runtime packages? My thoughts about the general design so far: EXE1 (the GUI app) EXE2 (the non-GUI Windows service) EXE3 (the console app that executes tasks, can be used stand-alone in console mode and must run in multiple instances) EXE1 and EXE2 would both call the console EXE3. However, the tasks being executed can be quite long (from minutes to hours), so bi-directional communication is required. And while a task is being executed, it is not feasible to simply kill the thread in order to stop it. EXE3 must complete or roll back the detail, it's currently working on. Furthermore, EXEs should run without installation (except for the Windows service, that is). If EXE3 was, for instance, a COM server, this wouldn't work, would it? We could of course build everything into every EXE and separate the functionality in the code design. But I don't like the idea in general and multi-threaded execution is easier to handle with separate processes - in particular if the GUI app and the Windows service run at the same time, but must not execute the same task twice.
  4. aehimself

    Disable then Enable a Procedure

    TMyForm = Class(TForm) strict private _doit: Boolean; [...] Procedure TMyForm.MyProc; Begin If Not _doit Then Exit; [...] End; TForm1..DBGrid2DblClick(Sender: TObject); Begin _doit := False; Try [...] Finally _doit := True; End; End;
  5. I have been following this forum and am interested that no-one has mentioned the Delphi "App Tethering" components which I thought were specifically designed to help make this task straightforward. Am I incorrect or does AppTethering not work well? (I hope I am not going to distract the forum question from the main question by asking this here)
  6. mjustin

    Firedac and SSL

    In https://stackoverflow.com/questions/71993040/delphi-11-1s-firedac-and-mysql-ssl-connection-error-unknown-error-number there is one fresh comment saying "I solved the same problem today, downgrading the MySql version to 8.0.23", and one answer "I installed and uninstalled MySQL (and MySQL Workbench and MySQL Script) probably 10 times. The last install worked. I have no idea why this was necessary.". Maybe this or one of the other answers / suggestions may be helpful.
  7. CyberPeter

    Hex Viewer

    I needed to convert the class names to a TStyleHookClass, which is a TClass, by using __classid() Vcl::Themes::TStyleManager::Engine->RegisterStyleHook(__classid(TATBinHex), __classid(TScrollingStyleHook)) ;
  8. You need "Inter Process Communication" (IPC) between your different executable. I personally use sockets to communicate between exe because the exact same socket and code can also be used when the exe are running on different networked computers! This means you can choose with no code change between local computing or distributed computing. Using sockets, as any other IPC, you have to design messages that will be exchanged between your executable. You can use your own design or use XML or JSON or whatever you like most. There are several "socket" libraries fro Delphi. I'm using "Internet Component Suite" (ICS) which also supports SSL/TLS if you are concerned with communication security.
  9. Hi, OAuth2 is basically an authorization protocol that after a successful authorization, returns a bearer token (like an id) that can be used later to access to a REST API. You just need to pass the bearer token in the HTTP headers of the Get/Post... request. I've a commercial product called sgcWebSockets that implements OAuth2 (among other protocols), you can download a trial for Delphi from: https://www.esegece.com/websockets/download/download-delphi-cbuilder If you want to read more about the OAuth2 implementation, you can use the following link: https://www.esegece.com/help/sgcWebSockets/#t=Components%2FHTTP%2FAuthorization%2FOAuth2%2Fclient%2FTsgcHTTP_OAuth2_Client.htm If you are in trouble testing the demo or you need assistance converting the postman scripts, you can use the following link: https://www.esegece.com/contact/contact-us Kind Regards, Sergio
  10. Remy Lebeau

    Raw Request Logging for TIdHTTPServer

    Not the raw data as it came directly from the TCP socket, no. By the time you are given access to the TIdHTTPRequestInfo object, all of the raw socket data has already been parsed and re-organized for Indy's purposes. That being said, you can get the (near-raw) headers from the TIdHTTPRequestInfo.RawHeaders property, and the body data from either the TIdHTTPRequestInfo.PostStream or TIdHTTPRequestInfo.FormParams property, depending on the request's media type. Basically, yes. The only other option is to log the raw socket data immediately as it comes off the socket, before Indy parses it. You can do that by assigning a TIdConnectionIntercept-derived object to the AContext.Connection.Intercept property in the server's OnConnect event. For instance, one of the TIdLog... components, like TIdLogFile,
  11. Primož Gabrijelčič

    Async/Await with updating visual controls

    Yes, like that, but use TThread.Queue. There's no need to block the worker thread while memo is being updated.
  12. i believe EWS is deprecated, take a look at the MS Graph API: Microsoft Graph overview - Microsoft Graph | Microsoft Learn
  13. Alexander Sviridenkov

    ANN: CodeFinder

    A tool to simplify source code search. Find where class or function is declared, where class descendants are declared, search only in comments or in strings, etc. Build for Delphi and written in Delphi from scratch. Detailed description: https://delphihtmlcomponents.com/codefinder.html
  14. Vincent Parrett

    Delphi Registration

    This is imho an unconscionable business practice - either the licenses are perpetual or they expire when the subscription expires, embarcadero can't have it both ways. I can't imagine how many customers they have turned away with this practice - pretty much every delphi dev I have met has encountered this issue - several gave up and walked away from delphi because of this license insecurity. Some went back to D7 because they could always get their license to work. If a company is going to use node locked activation (which is what this is), then they have to provide a way to unregister/move/transfer licenses. It's not that hard.
  15. Darian Miller

    Farewell Rx10.4.2

    Once you get it installed, it does seem very nice. The non-dockable floating form designer is a bit funky but I do not resort to using that very often. There are reported compatibility issues with TNumberBox and TScrollBox. Also watch for possible unintentional image resizing iin VirtualImageList if using the HighDPI designer. I started a list of things to look out for: https://github.com/ideasawakened/DelphiKB/wiki/D28.ALEXANDRIA.11.0.0.0
  16. paule3232.jk

    JEDI Installation Annoyances 10.4

    you can not install .bpl files from other Delphi Version. you have to compile the .pas files with the actual Delphi Compiler you have to do some tricky jobs you have to build the runtime (jcl) first, begin with the core packages before you do this, set all the path's to the jcl directory before this, it is better to copy the files on a second "no space included" path on a second hard drive (to simply copy the bpl files on re-new your Delphi version) then you have to compile all you want by hand (this can take awhile, because you have figure out, which depend units are required it is normal that you have to do some steps again. but the actual jedi lib does not support the Community Version of Delphi. my favorite Delphi is Delphi 7 from the year of 2002. it is 32-bit. but for the most of use (learning delphi) it is okay and make no problems. I have install over 1000 components in the delphi Palette for Delphi 7. one of the components are Jedi. Dont mess your Time, use Delphi 7. It is a good start point. Or take a look to Lazarus + FPC. Hope this helps
×