1

このような縫い目は、真の Delphi オタク専用です。

これはどのように見えるかです(申し訳ありませんが、画像を投稿できません)
Delphi IDEの醜いツールバー

代替テキスト
(出典: piccy.info )

何が問題なのか- 無効化された Delphi IDE のツールバーとメニュー ボタンは見苦しい白黒画像です。
私がやりたいこと- それらをグレースケールに見せます。

どのように?私はいくつかの研究をしました。仮想TCustomImageList.DoDrawメソッドの主な問題。Enabled = Falseパラメータが醜いものを描くとき(スクリーンショットの無効なボタンを参照)。この関数の独自のオーバーライドを作成し、グレースケールの画像を描画しますEnabled = False

ここで、デフォルトを IDE で自分のものに置き換えDoDrawたい(デザイン時パッケージを使用):

  1. ユニット ImgList は bds.exe でコンパイルされていることがわかったので、この関数にパッチを適用するトリックは機能しrtlXXX.bplません。
  2. 関数の本体コンテンツを検索しても結果が得られませんでした。bds.exe の実装 (私はマシン コードについて話しています)DoDrawは少し異なっているようです。

これを可能にする方法についての提案やアイデアはありますか? ランタイム コードのパッチ適用の基本例として、Andy の Midas Speed Fix: FindMethodPtr, HookProc,を取り上げました。UnhookProc

4

4 に答える 4

4

私はそれを作りました:)この質問に参加または閲覧したすべての人に感謝します!

これが私のIDEの現在の外観です:
固定ツールバーhttp://blog.frantic.im/wp-content/uploads/2009/11/delphi-ide-after.PNG

vclXXX.pbl私は自分のせいでめちゃくちゃになりました。ソースはここにあります。グラデーションツールバーを機能させるには、有効にする必要があります。このアイデアのさらなる発展に興味がある場合は、このトピックをお読みください

于 2009-11-18T12:03:26.757 に答える
0

私は、Delphi が有効なイメージからデフォルトの無効なイメージを作成する方法が嫌いでした。これは、IDE に現れるだけでなく、開発中のアプリケーションまで持続します。アプリケーション内の無効化された画像も同様に見栄えが悪くなります。

私は過去に、Delphi が無効なイメージを派生させ、その上に構築するために何をしたかを理解しようとしました。しかし、それを終わらせるために、私の「やること」リストにはまだあります。

それにもかかわらず、これらは私がかなり前に遭遇した Delphi の「グリッチ」に関するいくつかの記事であり、役に立つかもしれないし、役に立たないかもしれません。

  1. Vladimir S.

  2. MenuImgList.pas

  3. Delphi 5 でのボタン描画の不具合の修正

  4. Delphi 4 でのメニュー描画の不具合の修正

于 2009-11-16T18:18:35.247 に答える
0

多分私は問題をよく理解していませんが、DoDraw 関数をオーバーライドしたいだけなら、TCustomImageList から継承する独自のコンポーネントを作成し、目的の関数をオーバーライドして、必要な機能を実行し、IDE に登録してみませんか? ?

于 2009-11-16T15:27:49.443 に答える
0

独自のオーバーライド コンポーネントを作成したくない場合は、[DelphiPath]\source\Win32\vcl\ImgList.pasで直接実現を変更できます。

しかし、それは本当に良い方法ではありません。

于 2009-11-16T15:37:28.410 に答える