Jump to content

Uwe Raabe

Members
  • Content Count

    2886
  • Joined

  • Last visited

  • Days Won

    169

Everything posted by Uwe Raabe

  1. Uwe Raabe

    Open Tools API - Project load/close notification

    You should try IOTAIDENotifier registered with IOTAServices. Then in FileNotification check for NotifyCode = ofnFileOpening. This will be called for all files before they are opened, so you need to filter by extension.
  2. Uwe Raabe

    Alt-sortcuts are not always the same

    The property/method responsible for that behavior is Vcl.Menus.TMenuItem.AutoHotkeys and/or Vcl.Menus.TMenuItem.RethinkHotkeys
  3. Uwe Raabe

    Frames, inheritance... How?

    You can still connect these as long as both are inside the frame. If you want to connect buttons of the frame to action in the form: no, that must be done manually.
  4. Uwe Raabe

    Frames, inheritance... How?

    First, you should clarify how TMainForm and TMainFormBase are related, as well as TFrameBase and TFrameTop. Disregarding these inconsistencies I will try to outline my solution: You should avoid placing the frame instance into the form with the designer. Instead declare a field in TMainFormBase of type TFrameBase named Frame. Add a virtual class function CreateFrame returning a TFrameBase instance. During form creation call this function and set the field Frame with the result. Then in TMainFormApplication override that function and return a TFrameApplication.
  5. Uwe Raabe

    can you reference unit name in code?

    That is the ICODE section (probably stands for initialization code).
  6. Uwe Raabe

    can you reference unit name in code?

    Of course! Fixed.
  7. Uwe Raabe

    can you reference unit name in code?

    You can also create an include file with the following content type TLog = class public class procedure This(const Msg:string); end; class procedure TLog.This(const Msg: string); begin LogThis(UnitName, Msg); end; In your units add an appropriates include directive directly below the implementation uses. Then replace all LogThis calls with TLog.This calls, without bothering about the unit name at all.
  8. Uwe Raabe

    can you reference unit name in code?

    As I said, you can call UnitName on every class declared in that unit. If the unit contains no suitable class declaration in the first place, you can always add one just for this purpose: type TClassInThisUnit = class; initialization LogThis(TClassInThisUnit.UnitName, SomeValue); end.
  9. Uwe Raabe

    can you reference unit name in code?

    If this call happens inside a method or class method in that unit, you can use UnitName for that. Every class returns the unit of its declaration with this function. See: http://docwiki.embarcadero.com/Libraries/Rio/en/System.TObject.UnitName As it is a class method, you can even make use of it outside of that class as long as there is at least one class declared in that unit.
  10. Uwe Raabe

    Blogged : Introducing DPM - a Package Manager for Delphi

    Cleaning the global library path from unwanted entries creeping in when installing a library with its own setup is a continuing task here. In my installations the global library path contains only what the Delphi installer writes to it. Every additional library path is added to the search path of the project that makes use of it. Option sets for each library not only simplifies this, but also give a visual clue in the project manager which libraries are used for the project. Also these paths are somehow included in the repository of this project. This way I can fire up a new build agent for Continua, install Delphi, FinalBuilder and whatever tools are needed - that's it. All my projects can be compiled on this machine. Gone are the days where hunting for missing libraries detected late in the build process - often when you are already in a hurry.
  11. The solution heavily depends on what you call different on these lists. Your solution simply makes the lists containing the same elements, which is quite off checking for equality. Others might see two lists equal if the elements and their order match. Also equality of two elements can mean different things depending on the actual type T. At least TList<T> offers to provide a comparer for the latter.
  12. Works as expected in Rio...
  13. Uwe Raabe

    Two questions if you please?

    This information is buried inside the DSK file of the project. Inspect the View<n> section for the source file in question and note the EditViewName entry. For the source view to be visible it contains the PAS file name, while for the design view it says Borland.FormDesignerView. Note that the the last state is stored and overwrites your changes when the IDE options are set to store the current desktop on close.
  14. Uwe Raabe

    Moving Line or Block in the IDE editor

    MMX Code Explorer offers that with Shift-Alt-Up/Down (if no other key binding catches it first).
  15. For Version Info manually delete means inside the dproj file.
  16. Project Magician has an option for that:
  17. Uwe Raabe

    Debugger in 10.3.3 is useless :'(

    Actually it is - with Project Magician:
  18. Uwe Raabe

    30 % and 35 % discount on Delphi

    Yesterday I got a (real paper!) mail from Embarcadero with this link: https://lp.embarcadero.com/blackweek2019de
  19. Uwe Raabe

    ctrl-F4 in CPU window

    Don't know what you expect, but here it closes the current tab containing the CPU view.
  20. Uwe Raabe

    Delphi 10.3.3 has been released

    That's one reason why I don't work with packages installed by GetIt. Despite some efforts since the first appearance, it is still a half baked solution and not suitable for my environment and the way I work.
  21. Uwe Raabe

    Debugger in 10.3.3 is useless :'(

    Can you attach a small example showing the problem? Just to rule out it is somehow bound to your system only? That would also be helpful for a bug report.
  22. Uwe Raabe

    Debugger in 10.3.3 is useless :'(

    Perhaps it helps to delete the .dsk file of the project and/or project group.
  23. Uwe Raabe

    Delphi 10.3.3 has been released

    Well, they do here:
  24. VersionShelf servers are located in Germany, which is mandatory for some companies over here for enforcing the German data protection laws. I doubt that Perforce can guarantee that.
  25. If you are sharing the sources only inside your company, a local server is indeed a valid solution. I my case I am sharing sources with different customers, where a local server hosted in my intranet is almost out of scope (or comes with a lot of maintenance need). Therefore I prefer hosted servers that can be reached 24/7 from outside my place. What makes it a bit complicated is the restriction that some customers require the data to reside in Germany or at least the EU (while the latter turns out to be a moving target these days). This is why I recently asked in the German sibling of this forum about setting up a Kallithea instance (I am still fond of Mercurial - despite the crowd either stays with SVN or moved to Git. Hey, I am doing Delphi! What did you expect? Running with the majority?). Unfortunately (or better thankfully) that died during the first steps going to get it running. The only service I currently know of that satisfies all these requirements is Versionshelf by Shelf Cloud. Although, they don't offer a free account.
×