一千萬個為什麽

搜索

Delphi IDE - 如何使禁用的工具欄按鈕變為灰度?

像這樣的接縫只適用於真正的德爾福怪才。

This is how it looks (sorry, can't post images)
Delphi IDE ugly toolbar

alt text http://i.piccy.info/i4/da/ac/ 6e4748778dcfdc13ec5fede3a7e0.png

What's wrong - disabled Delphi IDE toolbar and menu buttons are ugly black/white images.
What I want to do - make them look gray-scaled.

How? I made some research. Main problem in virtual TCustomImageList.DoDraw method. When paramater Enabled = False it paints ugly things (see disabled buttons on screenshot). I created my own override for this function and it paints gray-scaled images when Enabled = False

現在我想在IDE中使用我自己的 替換默認的 DoDraw (使用設計時包):

  1. 我想出了單元ImgList被編譯進了bds.exe,因此在 rtlXXX.bpl 中修補這個函數的技巧將不起作用。
  2. 搜索函數的正文內容沒有結果。看起來像 DoDraw 的bds.exe的實現(我是關於機器碼的talikng)有點不同。

Any suggestions or ideas of how can I make this possible? As base example of runtime code patching I took Andy's Midas Speed Fix: FindMethodPtr, HookProc, UnhookProc

最佳答案

我做到了:)感謝參與或觀看這個問題的所有人!

This is how my IDE looks now:
Fixed toolbar http://blog.frantic.im/wp-content/uploads/2009/11/delphi-ide-after.PNG

我只是搞砸了 vclXXX.pbl ,是我的錯。來源可以在這裏找到 。漸變工具欄必須啟用才能使其工作。如果你有興趣進一步發展這個想法 - 請閱讀這個主題

轉載註明原文: Delphi IDE - 如何使禁用的工具欄按鈕變為灰度?