Jump to content

Angus Robertson

Members
  • Content Count

    1723
  • Joined

  • Last visited

  • Days Won

    32

Posts posted by Angus Robertson


  1.  

    2 hours ago, timfrost said:

    I am using DDService successfully in Delphi 10.3;

    The latest files in my DDService version are 20 April 2014, mostly XE6 units.  I'm not sure how the DIFF files that patch a copy of the installed SvcMgr.pas file are created, or whether the zip includes the tools to create new DIFF files.  Suspect the patched XE6 file could be distributed and used in more recent versions without a problem, which might be what you doing.

     

    Angus


  2. DDService adds the following according to the readme:

     

    Quote

     - Win 2000 FailureOptions and FailureActions,
       Service Description.
       HandlerEx extended service controls:
       ParamChange, NetBindChange.
       Optional device events as well as power events.
       Assigning one of these events creates a hidden  window in the context of the service thread.
       Creation of the service window can be enforced by  setting option eoForceServiceThreadWindow.
     - Win XP SessionChange service control
     - Win Vista PreShutdown service control and  NonCrashFailures flag, Service SID Info, Required Privileges and StartType AutoDelayed.
     - Optional console control handler
     - Property ServiceName.
     - Includes fixes of QC #68050 and QC #37706. 

    I'll put it in my SVN repository next week, Arno would be pleased, he put a lot of effort into DDService.

     

    I handle power, time and device events in my services using the normal Windows messages, wrote a hardware component that does it all. 

     

    Angus

     

    • Like 3

  3. The late Arno Garrels wrote an updated component, or rather he patches TService with updates to avoid copyright issues. 

    Quote

    DDService is an enhanced Windows NT service application framework for Delphi and C++ Builder based on the original VCL service framework. In addition to it it also encapsulates new Windows NT service APIs introduced since Windows 2000. DDService is freeware with source and currently supports Delphi 5, 7 and 2006-XE5 as well as C++ Builder 2006-XE5.

    I've used it in a couple of applications but not managed to make a dual GUI/Service application work properly (it was not designed for that) so still use SvCom.  Keep meaning to update it for newer Delphi versions.

     

    Angus


  4. Although the Windows service APIs rarely change, there are new ones periodically to improve interaction with GUIs and taskbar notifications, although I don't need any of that stuff.  Not looked for a long time, but TService used to use old APIs and was never updated. 

     

    Main problem with long term support is RTL changes in new versions of Delphi, not often, but breaks new compilers. Usually a simple change provided you have the source code.

     

    Angus


  5. I've used SvCom from Aldyn Software for 15 years.  It is commercial software, still being updated for new Delphi versions, comes with source code. 

     

    The major benefit is it allows applications to be created as dual purpose GUI and service applications, which means you can develop and test under the Delphi debugger with a minimal GUI window usually just a log window and start/stop buttons.  Some of my applications can be optionally installed as a service, but have a full GUI as well, and include their own code to install as a service.

     

    Angus

     


  6. Yes, V8.62 supports up to 1.1.1z assuming there are that many versions, and some idiot at OpenSSL does not break something, as they did a few years ago by removing some exports to solve a security issue, don't think they'll do that again.

     

    I always copy the latest OpenSSL into the directories of all my ICS applications on my main development PC and public servers and restart them, before publishing, only a few minutes testing, but I'd find out quickly if connections failed due to an SSL problem.

     

    Angus


  7. Six new zips for Win32 and Win64 versions of OpenSSL 1.1.1d, 1.1.0l and 1.0.2t can now be downloadable from the Wiki at: http://wiki.overbyte.eu/wiki/index.php/ICS_Download or https://www.magsys.co.uk/delphi/magics.asp . The latest 1.1.1 DLLs are also included in the ICS distribution SVN and overnight zip.  These releases include four low priority security improvements and bug fixes, including a Windows specific fix where configuration files placed in 'C:/usr/local' could override some OpenSSL settings.

     

    ICS applications require V8.57 or later to support OpenSSL 1.1.1c.

    Changes in 1.1.1d may be found at https://www.openssl.org/news/openssl-1.1.1-notes.html , 1.1.0l may be found at https://www.openssl.org/news/openssl-1.1.0-notes.html and 1.0.2t at  https://www.openssl.org/news/openssl-1.0.2-notes.html

     

    Angus
     
     

    • Thanks 3

  8. Yes, best to test the quickest solution first and only do something harder if it's too slow. Reverse scrolling is only wanted by people with slow data updates like alarms who actually watch the screen, no-one watches syslogs rushing past at 10 lines per second, except to see something is arriving.  \

     

    Angus

     


  9. The purpose is to display the content of one of up to 999 text files selected from a tab control, no columns or sortable data, just random lines of text up to 2K long.  So each time the tab is clicked to change a source file, the TMemo is reloaded with lines.  I don't need the complexity of VTV, no headers, footers, columns, nodes, etc.  TListView will handle virtual data quite adequately, if I can remove the header. 

     

    But I really would prefer a TMemo that reverses the TStringList loaded into it, top latest.

     

    Angus


  10. The problem with ListView or VirtualTreeView is I'd have to write a code to parse text file lines into an array of lines as the data source.  Mind I guess that is what TMemo is doing when I load a TStringList into it, worth a little test code.

     

    Angus

     


  11. Of course I meant TMemo in the subject...

     

    A virtual TListView is very useful for rapid sorting for columnar data, but I'm displaying random textual information, might be raw data from 50 GPS locators, router syslogs, or alarms from remote monitoring of transmitters or properties, and it's the latter low traffic where people ask for latest at top of window rather than bottom.

     

    Angus


  12. Looking for a visual component similar to TEdit (but read only) that adds new lines at the top of the window, and pushes them down, reverse scrolling.  Ideally forward or reverse scrolling should be an option.

     

    Angus

     


  13. You empty a stream with the clear method, that resets the position to the start as well.  Seek to start is when you have read or written to the stream. 

     

    Beware cameras can produce a lot of data and you have to keep up with it or frames are lost.  This may be one rare example where it's better to capture data in a thread particularly if you need to display it real time which can also be a struggle, or at least was 15 years ago on the hardware I was using, guess everything is a lot faster now. 

     

    One streaming technique is an endless HTML page, it says page length zero in the header, then sends one MIME block per frame, up to 25 per second.  You don't want to save that to a stream...or at least clear it after each frame.  You may be better using the OnDocData event to receive small amounts of data rather than a stream, but also be careful about copying it between buffers, that slows everything down as well.

     

    Angus

     


  14. I had to delete a lot of .svn files to add the libraries to a new SVN repository, which is probably how the source directory got lost as well, Not sure about the zlib obj files, the unit compiled OK so Delphi must have found them in my path somewhere from other libraries like ICS, although ICS uses a later version.  Deleting DCUs from dozens of directories might have saved some space, but this application will not compile with later versions of Delphi, not with older versions without some editing, so no real harm. 

     

    Tried to update SVN with the missing source files but it's moaning at me, will try again later.

     

    Angus


  15. You only get that error if you are misusing the component.  It means an async operation is still in progress and you are attempting to start another operation.

     

    With async use, you need to wait for the onRequestDone event to fire before starting something new.  You can also check the State property for httpReady.

     

    Angus

×