Jump to content

Uwe Raabe

  • Content Count

  • Joined

  • Last visited

  • Days Won


Everything posted by Uwe Raabe

  1. Yes, but it comes with the Delphi installation and thus doesn't need to be maintained externally. I also have customers avoiding additional libraries. Each new one has to be justified to someone, which often turns out to be a tedious process. Not everyone has the power to decide on its own.
  2. Uwe Raabe

    IBToGo Change View without server?

    Quoted from Webinar Replay: Simplify Data Change Tracking with InterBase
  3. Uwe Raabe

    TTimer equivalent with smaller interval

    AFAIK, that has been true for Windows 95. According to the WinApi SetTimer function, which is internally used by a VCL TTimer, the minimum value for Interval is 10 ms:
  4. Uwe Raabe

    Tool to fix up uses clause unit namespaces?

    Same here. That's why MMX development is actually stalled - unfortunately. Otherwise the beta version would have long been finished.
  5. Uwe Raabe

    Tool to fix up uses clause unit namespaces?

    Regarding compiler directives you can give the above sources a try. Although there might still be cases where it fails, they should do a better job than the official MMX version does.
  6. Uwe Raabe

    Tool to fix up uses clause unit namespaces?

    Yes, there is always room for improvement.
  7. Uwe Raabe

    Tool to fix up uses clause unit namespaces?

    The code used in MMX Code Explorer is almost identical to what I attached above. The command line application allows targeting multiple units in one go, while as you noticed MMX only works on the uses clause the cursor is positioned in the current unit.
  8. Uwe Raabe

    Tool to fix up uses clause unit namespaces?

    I have written a tool including that functionality some time ago. Although I didn't find the time to polish it up before going public, it basically does what it is supposed to. Expanding unit scope names is only part of the whole process, which consists of resolve all unit aliases expand unit scope names group units compress uses clause Taking your example above it will convert uses sysutils, stdctrls; into uses System.SysUtils, Vcl.StdCtrls; Feel free to adjust the sources to your needs. UsesCleanerSource.zip
  9. It is probably related to this code in System.Classes.ThreadProc: try Thread.Execute; except Thread.FFatalException := AcquireExceptionObject; end; You should be able to get any exception in the threads OnTerminate handler reading its FatalException property. See also http://docwiki.embarcadero.com/Libraries/Rio/en/System.Classes.TThread.FatalException
  10. Uwe Raabe

    With haters unite

    Indeed! You would write it this way: begin ... begin // do something with ref and thing var ref := Some.Array[Index1].Reference; var thing := Function(Index1).Thing if ref.Value <> thing.Value then begin ... end; end; // ref and thing are not present ... end;
  11. Uwe Raabe

    With haters unite

    The filter "Reported by me" yields different results for everyone - obviously.
  12. If it is explicitly coded there is of course no option to turn it off (except changing the code), but the ability to turn it off is the foundation of this poll.
  13. There is always the option to turn range checking off for a dedicated code part.
  14. Did you give that TStreamReader approach a try?
  15. Streams don't know about encoding. You might better do with a TStreamReader. In its FillBuffer method there is some code taking care of your concern (look for ExtraByteCount).
  16. Uwe Raabe

    XML Data Binding Wizard???

    AFAIK that is not available in the Professional version. The feature matrix seems to support that information:
  17. Uwe Raabe

    Cannot perform this operation on a closed dataset

    The message is thrown inside the CheckActive method of TDataSet. I also suggest some debugging session. I guess the reason lies at place you don't expect.
  18. Uwe Raabe

    Toggle paths in Project Explorer?

    The right most button in the toolbar has a drop down menu where you can configure the sort order.
  19. Uwe Raabe

    Using Params with recycled queries

    If the query is a SELECT statement or something that also returns a record set you should use Open instead of Execute. Therefore you should add a Close before changing any parameters.
  20. Uwe Raabe

    Best way to refresh static data

    Whatever you implement, you should always measure the performance against the brute force update. If the server were a recent InterBase one, you could make it simple and fast with Change Views, but these are not available with other databases.
  21. Uwe Raabe

    Best way to refresh static data

    Why so complicated? Dump DOCS_TABLE and rebuild it from scratch - assuming you actually have access to the server. Otherwise you have to work with the data available in DOCS_TABLE anyway.
  22. Uwe Raabe

    Why can't I install this monospaced font in Delphi ?

    Can Lazarus make use of any font in the editor? Even the non-monospaced ones?
  23. Uwe Raabe

    MMX for Delphi 10.3 Rio

    That's basically what MMX does, too. Besides the IDE itself (with active CodeInsight) there may as well be other plugins spawning their own parser process. This bothers me for years now. It might get better when LSP is up and working reliably, but that might take a while and will be restricted on newer Delphi versions. Thanks for the tip, though. 👍
  24. That may be key here. Before looking for global components all components owned by the current one are searched (Keywords: DoFixupReferences, FindNestedComponent). So if your datamodule is owned by the form it should be found first. You may probably even omit the renaming step after loading.
  25. Indeed, it is! The references are resolved in TReader.FixupReferences and are based on component names. To wire the datasource on the datamodule to the controls on the form, the datamodule has to be created before the form loads. As all forms and datamodules register themselves in the Screen.Forms and Screen.Datamodules lists, they are found by simply iterating over these lists in the Vcl.Forms.FindGlobalComponent procedure, which is registered via RegisterFindGlobalComponentProc. You can register your own FindGlobalComponentProc this way, which takes precedence over the internal one (System.Classes.FindGlobalComponents uses a reverse loop). The implementation might be a bit tricky, though.