The Road to Delphi

Delphi – Free Pascal – Oxygene

Delphi IDE Colorizer – Open Beta

50 Comments

A few months ago I started to work on a new project called Delphi IDE Colorizer. In the past weeks a beta version was tested for a dozen of Delphi developers on a closed beta. Now it’s time to move forward and a open beta version of the plugin is available. Check the next images and videos which provide a description of the Wizard.

Introduction

The Delphi IDE Colorizer (DIC) is a Wizard which allows to customize the look and feel of the workspace of the RAD Studio IDE.

Some of the features of the plugin are

  • DIC is compatible with RAD Studio XE, XE2, XE3, XE4, XE5, X6.
  • Transparent menus
  • Allow to change the icons, set the colors, and gradient direction of the title bar of the docked windows
  • Set the colors, and gradient direction of the toolbars.
  • Improve the drawing of the disabled icons used in menus and toolbars
  • Compatible with CnWizards and GExperts
  • Replace the icons used in the gutter and the debugger.
  • Includes 90+ themes.

Download

Before to download please read the FAQ of the plugin.
For download the wizard check the page of the project.

Check the next sample images
DeepskyBlue_default_layout

YellowGreen_debug_layout_assembly

DIC_Transparent_Menus

DIC_VCLStyles_Menus

Author: Rodrigo

Just another Delphi guy.

50 thoughts on “Delphi IDE Colorizer – Open Beta

  1. My eyes! Make it stop! The blinking was just too much for me. ;-)

    Nice new wizard!

  2. Very Nice!!

    Is there any plans to combine this with the IDE Theme Editor at some stage?

  3. Amazing. DarkSlateGray is my favorite!

  4. PERFECT!!!

    embarcadero, look fondly this project …

  5. hot hot hot

  6. Nice, I like the twilight green theme.

    Is there anyway to make it work with other third party addins. I use Model Maker Code Explorer (MMX) so those toolbars and panes now clash with the new colour scheme.

    • You can add support for additional forms types editing the file HookedWindows.dat located in the folder %LOCALAPPDATA%\The Road To Delphi\DIC\XE

  7. some feedback about what to add/improve:

    1. add font color for inactive ide tabs
    2. spread ide tabs style to dock tabs (like for ProjectManager/ModelView/DataExplorer etc) and for Code/Design/History
    3. split menu color to menu color and window color. it is not clear that this color colors both when it is called menu color
    4. in color selection dialog adjust tab order to be logical. also put Red edit as default focused control
    5. make Apply changes button default (and Apply button in color selection dialog)
    6. hard to say what does base color does – need some clarification
    7. among with Save and Delete buttons i would appreciate Export button – to easily store my custom theme to file and share it with colleges
    8. it would be extremely good if there would be ability to create custom color alias (or whatever you call it) and link color settings to that alias rather than to direct color value. you know, each theme usually would consist of 6-7 colors so it is boring to change colors again and again to make everything look consistent when you want to basically change only one color. in proposed feature i could have set of settings linked to single color alias so i would only need to change color assosiated with that alias and press Apply.
    9. it is not clear that Highlight color is the one that is used as a second color in gradient in project manager’s tree. i could find that only experimentally
    10. attaching source colors editing to this tool would be very nice indeed

  8. 11. i would also appreciate very much if you clarified how to change frame colors for docked toolbars (like Debug and so on). i can see some gradient frame there but have to idea how to set those two colors

  9. So much colors in such a slow and buggy IDE.

  10. Out of curiosity, how does your wizard differ from the similar one found in CNPack?

  11. when i have cnPack installed, does the colorizer collide with the cnPack? will it in following versions?

  12. I got an AV in the IDE today, here’s the call stack. Hope it helps in debugging.

    [1D096C68]{tmsdXE5.bpl } Advgrid. + $0
    [50467669]{vcl190.bpl } Vcl.Controls.TWinControl.WndProc (Line 10039, “Vcl.Controls.pas” + 153) + $6
    [50466CAC]{vcl190.bpl } Vcl.Controls.TWinControl.MainWndProc (Line 9751, “Vcl.Controls.pas” + 3) + $6
    [501749C4]{rtl190.bpl } System.Classes.StdWndProc (Line 17010, “System.Classes.pas” + 5) + $0
    [5046777A]{vcl190.bpl } Vcl.Controls.TWinControl.DefaultHandler (Line 10080, “Vcl.Controls.pas” + 30) + $19
    [0D39DE2A]{DelphiIDEColorizer_XE5.dll} Colorizer.Hooks.Hooks.Detour_TWinControl_DefaultHandler$qqrp24Vcl.Controls.TWinControlpv (Line 464, “Colorizer.Hooks.pas” + 38) + $6
    [50589A6E]{vcl190.bpl } Vcl.Forms.TCustomForm.DefaultHandler (Line 5665, “Vcl.Forms.pas” + 11) + $4
    [50462B49]{vcl190.bpl } Vcl.Controls.TControl.WndProc (Line 7224, “Vcl.Controls.pas” + 91) + $6
    [50066917]{rtl190.bpl } System.UnicodeFromLocaleChars (Line 37611, “System.pas” + 1) + $F
    [50467669]{vcl190.bpl } Vcl.Controls.TWinControl.WndProc (Line 10039, “Vcl.Controls.pas” + 153) + $6
    [50059991]{rtl190.bpl } System.@ReallocMem (Line 4438, “System.pas” + 21) + $0
    [50062348]{rtl190.bpl } System.@UStrSetLength (Line 28885, “System.pas” + 27) + $0
    [500665EB]{rtl190.bpl } System.UTF8ToUnicodeString (Line 36536, “System.pas” + 11) + $5
    [505876F5]{vcl190.bpl } Vcl.Forms.TCustomForm.WndProc (Line 4388, “Vcl.Forms.pas” + 201) + $5
    [50093F50]{rtl190.bpl } System.SysUtils.SameText (Line 6385, “System.SysUtils.pas” + 4) + $1
    [0D39DA11]{DelphiIDEColorizer_XE5.dll} Colorizer.Hooks.Hooks.Detour_TCustomForm_WndProc$qqrp21Vcl.Forms.TCustomFormr24Winapi.Messages.TMessage (Line 263, “Colorizer.Hooks.pas” + 12) + $6
    [50466CAC]{vcl190.bpl } Vcl.Controls.TWinControl.MainWndProc (Line 9751, “Vcl.Controls.pas” + 3) + $6
    [501749C4]{rtl190.bpl } System.Classes.StdWndProc (Line 17010, “System.Classes.pas” + 5) + $0
    [50590CE4]{vcl190.bpl } Vcl.Forms.TApplication.ProcessMessage (Line 10267, “Vcl.Forms.pas” + 2) + $9
    [50590E06]{vcl190.bpl } Vcl.Forms.TApplication.HandleMessage (Line 10318, “Vcl.Forms.pas” + 1) + $4
    [50591141]{vcl190.bpl } Vcl.Forms.TApplication.Run (Line 10456, “Vcl.Forms.pas” + 26) + $3

  13. The latest version of this IDE plugin (0.3.1.7, just intalled) sadly crashes each time I try to do a search with the following call stack :

    [5006B04D]{rtl160.bpl } System.SysUtils.StrIComp (Line 9713, “System.SysUtils.pas” + 6) + $0
    [5033A3EB]{vcl160.bpl } Vcl.Controls.TWinControl.GetClientRect (Line 12081, “Vcl.Controls.pas” + 1) + $9
    [503E851C]{vcl160.bpl } Vcl.ExtCtrls.TCustomPanel.AdjustClientRect (Line 3307, “Vcl.ExtCtrls.pas” + 6) + $A
    [5033D35D]{vcl160.bpl } Vcl.Controls.TDockZone.GetTopLeft (Line 13863, “Vcl.Controls.pas” + 14) + $C
    [5033DB96]{vcl160.bpl } Vcl.Controls.TDockTree.GetControlBounds (Line 14217, “Vcl.Controls.pas” + 10) + $3A
    [504BA8D1]{vcl160.bpl } Vcl.CaptionedDockTree.TCaptionedDockTree.InvalidateDockSite (Line 192, “Vcl.CaptionedDockTree.pas” + 10) + $B
    [504BA9BA]{vcl160.bpl } Vcl.CaptionedDockTree.TCaptionedDockTree.WndProc (Line 248, “Vcl.CaptionedDockTree.pas” + 20) + $A
    [5033F6F8]{vcl160.bpl } Vcl.Controls.TDockTree.WindowProc (Line 15216, “Vcl.Controls.pas” + 1) + $6
    [503325D0]{vcl160.bpl } Vcl.Controls.TControl.Perform (Line 6982, “Vcl.Controls.pas” + 10) + $8
    [2075C771]{coreide160.bpl} VClient.KbdFree (Line 243, “VClient.pas” + 3) + $2
    [204747E1]{coreide160.bpl} IDEKbd… (Line 215, “kbpublic.cpp” + 171) + $C
    [5033F6F8]{vcl160.bpl } Vcl.Controls.TDockTree.WindowProc (Line 15216, “Vcl.Controls.pas” + 1) + $6
    [20769FD8]{coreide160.bpl} KbClient.TIDEKBDChildAPI.KBDClearPrimFocus (Line 1315, “KbClient.pas” + 5) + $1
    [20758878]{coreide160.bpl} EditorControl.TCustomEditControl.WMKillFocus (Line 7349, “EditorControl.pas” + 16) + $1
    [50332995]{vcl160.bpl } Vcl.Controls.TControl.WndProc (Line 7204, “Vcl.Controls.pas” + 91) + $6
    [503372F3]{vcl160.bpl } Vcl.Controls.TWinControl.WndProc (Line 9976, “Vcl.Controls.pas” + 152) + $6
    [50336948]{vcl160.bpl } Vcl.Controls.TWinControl.MainWndProc (Line 9689, “Vcl.Controls.pas” + 3) + $6
    [500B6890]{rtl160.bpl } System.Classes.StdWndProc (Line 13878, “System.Classes.pas” + 8) + $0
    [50453134]{vcl160.bpl } Vcl.Forms.TApplication.ProcessMessage (Line 10143, “Vcl.Forms.pas” + 2) + $9
    [50453256]{vcl160.bpl } Vcl.Forms.TApplication.HandleMessage (Line 10194, “Vcl.Forms.pas” + 1) + $4
    [50453595]{vcl160.bpl } Vcl.Forms.TApplication.Run (Line 10332, “Vcl.Forms.pas” + 26) + $3

    As soon as I disable it, search works fine again. I’m using a modal search window plugin (afair the one from Uwe Raabe) with XE2.

  14. Pingback: DITE and DIC now supports Appmethod 1.14 | The Road to Delphi - a Blog about programming

  15. I think captions of tool windows should follow the theme – they are always gray despite of theme change. I know they can be set in the custom tab, but that way you have to fine tune them on each theme change. I have no google account so I’ll not report this in issue system, sorry.

  16. Pingback: DIC now supports VCL Styles | The Road to Delphi - a Blog about programming

  17. Very cool — my IDE looks great! Thanks, and keep up the good work!

  18. My employer’s proxy server blocks your updater and I get “Error running context: An existing connection was forcibly closed by the remote host” when trying to do a svn checkout. Can you post the lastest exe somewhere pls.

  19. Nice work, but really – what is it for?

    A bit like the early days or “home hobbyists” with Windows – they’d customise and tweak and tune everything until when they came to upgrade to a new computer, or went onto someone else’s, they would be lost because it was so different!

    As a professional developer i appreciate being able to hop onto any one of my colleague’s PCs and assist them. With this, it’d take ages just to work out what was what in the IDE.

    A bit of fun perhaps but there are good reasons for standardizing your IDE and leaving it as it comes out of the box.

    • Hi Joe, Thanks for your comments, most of the modern IDEs (VS, Intellij IDEA, Eclipse) includes options to customize the look and feel of the workspace and this plugin pretends fill this gap in the RAD Studio IDE. I now which many developers are not very comfortably using skins and custom colors, but others want to customize the IDE look and feel creating a more personal experience, I spend between 10 and 12 hours every day coding on my laptop and I really prefer use a tool with my own colors.

  20. How do to uninstall?

  21. is it compatible with XE7 ?

  22. thanks for the answer (and the program)

  23. I did not yet install it, but does DIC also allow to change the font back to the one which was used w/o moderntheme*.bpl ?

  24. Does DIC also allow to change Fonts?

  25. Can you make one for Delphi 7 ?

    • Sorry but the plugin was designed to work only in the newer Delphi versions. Make a version compatible with the old Delphi versions would require a lot of effort.

  26. After installing Delphi XE2 does not open , the message , ” Embarcadero RAD Studio for Windows has stopped working .”
    I had to uninstall IDEColorizer

  27. Great goodies! I really like the theme you used here: https://theroadtodelphi.files.wordpress.com/2014/07/dic_vclstyles_menus.png but I can’t replicate it. How do I set it up so that it would look like that? Thanks!

  28. When u guys will release for Delphi XE10 Berlin?

    • Hi Charles, you must be patient with this, because the class helper limitation introduced in Berlin, causes several issues to compile the code, and fix all these will take some time.

      Regards
      Rodrigo.

Leave a comment