Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


WillH last won the day on July 4 2019

WillH had the most liked content!

Community Reputation

27 Excellent

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. WillH

    Deal - breaker: Registration Limit Increase

    There was a big discussion about this a while ago. After a lot of messing about it seems that registration bumps are now done by sales. The rather unclear message seemed to be that sales would try to sell you something but you would get your bump for free if you choose not to buy anything. Although, despite multiple people asking Atanas Popov for clarification, there wasn't anything clear forthcoming. Another major mis-step by Emba. Let us know how you get on with sales.
  2. WillH

    SFTP client

    Indy does not support SSH. I use securebridge which is great for SSH and SFTP. Not free though. https://www.devart.com/sbridge/
  3. WillH

    August 2019 Roadmap released

    I always felt that Nick Hodges had the cojonnes but sadly did not manage to influence the bean counters. It seems that the bean counters find it difficult to place a value on Quality, credibility and trust.
  4. WillH

    Funny Code in System.Types

    Are Emba doing any unit testing? Clearly, either this isn't tested or isn't sufficiently tested. Is any of the RTL being unit tested?
  5. WillH

    TFDEventAlerter bug?

    This looks like a threading issue in FireDAC. When you add a new event listener the event listener unregisters all the events it has and then registers everything again. I've traced it back to uADPhysManager (Yes I have the older source code, but I imagine things are pretty similar in your source) I think that stopping the listener thread is failing because there is an inbound event. procedure TADPhysEventAlerter.AbortJob; begin try InternalAbortJob; FMsgThread.Active := False; // Locks here except // not visible end; end; Just changing your code to use unregister will also trigger the problem. procedure TForm1.Button1Click(Sender: TObject); begin FConn.ExecSQL('EXECUTE BLOCK AS BEGIN POST_EVENT ''EVENT_1''; END'); FEvents.Unregister; end; Maybe, if you don't have many events you could try one event alerter instance per event. I don't get the same error with IBX TIBEvents so maybe you could use that for the event alerts instead.
  6. WillH

    Best delphi so far?

    Hi Bill, Of course you are correct that the way the product is used will affect performance. However, I think that it's a fair test to use the same project and associated third party components to form an opinion on relative performance between the IDE's. After turning off live bindings, the 10.2.3 IDE is running better although still very noticeably slower than XE. Mostly, the slowness is in the form designer when looking at relatively complex screens. This appears to be a fairly common complaint about the IDE's since livebindings were introduced. Maybe it is time for me to break up and simplify the affected screens to work with the IDE a bit more.
  7. WillH

    TFDEventAlerter bug?

    See http://docwiki.embarcadero.com/RADStudio/Rio/en/Database_Alerts_(FireDAC) Try setting FEvents.Options.Synchronize := True;
  8. WillH

    TFDEventAlerter bug?

    I found a similar bug where the Firebird client will lock up if you try to create two connections at the same time in different threads. In my case I could only reproduce it when a local connection was used. I had to change the API call in IBX so that it was wrapped in a critical section. IBIntf.pas //Create and destroy the critical section in the initialization and finalization sections. ConnLock : TCriticalSection ; function TDynamicLibrary.isc_attach_database(status_vector: PISC_STATUS; db_name_length: Short; db_name: PAnsiChar; db_handle: PISC_DB_HANDLE; parm_buffer_length: Short; parm_buffer: PByte): ISC_STATUS; begin ConnLock.Acquire ; try Result := Fisc_attach_database(status_vector, db_name_length, db_name, db_handle, parm_buffer_length, parm_buffer); finally ConnLock.Release ; end; end; So, have a look at the API call that is being made to make sure it is thread safe. Wrap your calls in a critical section. On a similar note. The events may be getting raised in the context of a background thread, So updating the form caption from that event may be the cause of your lock up. Try using PostMessage to pass the event to the main form in a thread safe way. Or use OutputDebugString for the purposes of your test.
  9. WillH

    Best delphi so far?

    Hi All, Thanks for the replies. I'm currently using Delphi XE. It's worked well for me, fairly quick, mostly stable, gets the job done. Now I have third party component vendors providing features I need but only for newer Delphi versions. XE2 is supported at the moment but I imagine it will be next for the chop. I've tried 10.2.3 which seems OK but it is so slow, especially in the forms designer. I'll try the others mentioned in this thread to see if they are any better. At least I won't need to install and try every single version since XE. It's interesting that most people seem to prefer the very old versions of Delphi and *almost* universally dislike 10.3.1. That is surely something that Embarcadero need to focus on. If their focus is on extracting as much money as possible from existing customers, I would imagine that no new feature (or skin) would beat a stable and responsive IDE.
  10. WillH

    Best delphi so far?

    Hi Everyone, Just wondering which has been the best release of Delphi so far in terms of IDE stability and 32-bit VCL development? (and possibly 64-Bit windows) Have any been particularly good/bad for you?
  11. Like Remobjects ? https://blogs.remobjects.com/2018/03/22/delphi-visual-library-on-webassembly-platform/
  12. WillH


    Could you use odometer ? https://en.wikipedia.org/wiki/Odometer
  13. Joseph, I think you're absolutely right about this. The language used in the replies from support have subtly but significantly changed their tune. From To I assume that the new version means that customers without an active subscription will have to endure a sales pitch before getting their registration bump. (Although Atanas still won't explicitly say that) I have no idea why they can't just admit the error, put in place the self service for bumps, and get on with trying to fix bugs and provide new features which actually work. Who knows, people may actually willingly stump up some cash for renewals rather than have to be held to ransom.
  14. Interesting seeing as Atanas has stated that everyone has received an automatic bump. Seems that may not be accurate after all. I too wish that DevExpress would support either Lazarus and/or Remobjects Island. It would make a switch from Delphi to one of those a lot easier. Currently looking at using RemObjects Oxygene, Hydra and Island as a route off of Delphi. The idea being that we can re-do the UI in DevExpress for .Net or Web technologies.
  15. Hi OzTrev When did you receive that? There was a reply on the Embarcadero blog site that indicated that this may have been overturned. However the language used was very tricky and may not mean that at all. If you got that more than a week or so ago, Please try them again and let us know how it goes. Blog post here : https://community.idera.com/developer-tools/b/blog/posts/from-the-gm-new-updates-and-changes-to-the-registration-bumps-policy