Jump to content

Ondrej Kelle

  • Content Count

  • Joined

  • Last visited

  • Days Won


Ondrej Kelle last won the day on January 21

Ondrej Kelle had the most liked content!

Community Reputation

31 Excellent

Recent Profile Visitors

228 profile views
  1. Ondrej Kelle

    Jedi - Git => SVN?

    It should also be possible to use branches and commit, according to their article: Support for Subversion clients.
  2. Ondrej Kelle

    How do you deal with git conflict annotations added to DFM files

    In case of lack of authority, proceed with slapping until the desired level is achieved. 🙂
  3. The question was posted Dec 24 '15. The quoted answer was posted 20 hours ago, deleted 2 hours later.
  4. Ondrej Kelle

    Project Configuration Manager

    If you chose the code-generating wizards route perhaps this might (still) be helpful: old article (web archive): OTA: Visual design of Wizards code: https://cc.embarcadero.com/Item/17106
  5. Ondrej Kelle

    Named pipe failure, multithreading and asynchronous I/O

    Couldn't reproduce here, Delphi 10.3 Update 1, Version 26.0.33219.4899 - seems to work as expected
  6. An easy way would be to create and use a data module, then you can put your Indy components on it and use the IDE designer to write your event handlers.
  7. Ondrej Kelle

    Right Process for Changing an Application's Icon?

    Looks like Anders' Resource Editor which you can download from his website: http://melander.dk/download/
  8. System.Atomic* routines (e.g. AtomicCmpExchange) TInterlocked in SyncObjs
  9. Not really when writing my own code, I try to avoid them if possible. Sometimes for interop with an API, e.g. when translating C headers where enums are already declared that way. Or when you need to support a binary format which uses some specific ordinal values, then it depends - you might still prefer to use an enum but avoid conversion.
  10. No reservations, I find it concise/elegant and prefer to use it whenever I can. My 2c. You might have to avoid enum types with explicitly assigned ordinal values, though.
  11. Ondrej Kelle

    Version Control System

    People have actually asked for blame as a feature, that's why I included it back then in delphisvn (before it became Version Insight). I find it useful myself to see who committed which lines and also when. This piece of metadata can be useful when trying to understand a code base and its evolution.
  12. Ondrej Kelle

    How to get position of Top-level TMenuItem of Main menu

    Just a thought... Sounds like the units in your uses clause are listed in a different order so the type declarations resolve differently.
  13. Ondrej Kelle

    How to get position of Top-level TMenuItem of Main menu

    Sorry, I've been vague. Here's the full code which works in Delphi XE, I hope it helps: GetWindowMenuItemRect example Cheers!
  14. Ondrej Kelle

    Measure Process Time

    On Windows, there's GetProcessTimes API if that's what you want...
  15. Ondrej Kelle

    How to get position of Top-level TMenuItem of Main menu

    I've checked it with Delphi XE. The declaration of TMenuBarInfo in Windows unit seems to be wrong (packed record, 29 bytes). Simply redeclare it in your unit: type {$A8} // default quadword-alignment PMenuBarInfo = ^TMenuBarInfo; tagMENUBARINFO = record cbSize: DWORD; rcBar: TRect; hMenu: HMENU; hwndMenu: HWND; { fBarFocused:1: BOOL;} { bar, popup has the focus } { fFocused:1: BOOL; } { item has the focus } FocusedBits: BYTE; end; TMenuBarInfo = tagMENUBARINFO; function GetMenuBarInfo(hend: HWND; idObject, idItem: Longint; var pmbi: TMenuBarInfo): BOOL; stdcall; external user32 name 'GetMenuBarInfo'; which makes the record size 32 bytes, then it works: BTW, it's already fixed in Rio.