私はDelphiを使用しています。クラスTControlで独自のラベルコンポーネントを作成しています。 プロパティ(キャプション、フォントなど)に従ってテキストをペイントする前に、コンポーネントの場所に何もないように、ペイントrectをクリアします。私はガラスのようにして、それの後ろにある他のコンポーネントが表示されるようにしたいのです。テキストをペイントします。ラベルの後ろに配置されている他のコンポーネントをペイントするにはどうしたらよいですか?以前に塗られたものをどのようにクリアすることが可能ですか?
1
A
答えて
4
これを行うには、何もする必要はありません。 :-)
透明なラベルのようなコンポーネントを作成する場合は、TGraphicControl基本クラスを使用するのが最適です。これは実際にペイントするキャンバス以上のものではありません。コンテンツを変更する必要があるときはいつでも、Invalidate
メソッドを呼び出してコントロールを再描画します。これにより、オーバーライドできるPaint
メソッドが呼び出されます。すべての塗り直しで、コントラストは透明で透明になりますが、Paint
メソッドでは描画する部分を除きます。
0
背景ペイントを無効にして無効にしない限り、何もする必要はありません。それはあなたが行くベースクラスに依存します。
Canvas.Brush.Style:=bsSolid;
Canvas.Brush.Color:=self.Color; //If you have a public color property
Canvas.FillRect(ClientRect);
また、TControlCanvasで読み上げる必要があります(Paint()メソッドで)。このトピックを詳しく扱うウェブサイトは次のとおりです:http://www.delphidabbler.com/tips/75
関連する問題
- 1. Android - 別のアプリを変更することは可能ですか?もしそうなら、どのように?
- 2. uiautomatorで継承を使用することは可能ですか?もしそうなら、どのように?
- 3. UWP、以前にユーザーがログインしたことを検出するにはどうすればよいですか?
- 4. Jupyter Labでは、以前のテンソルボードグラフをクリアするにはどうすればよいですか?
- 5. どのようにルートパス以外の場所にAngular 2アプリを配置することは可能ですか?
- 6. 関数ハンドリング・ルートが3つ以上のパラメータを取ることはどのように可能ですか?
- 7. Xcode9/Swift4でもUnrecognizedSelectorはどのように可能ですか?
- 8. 以前にggplot2で作成したヒストグラムをどのように重ねることができますか?
- 9. fontawesomeアイコンの色を塗ることは可能ですか?
- 10. ビジュアルスタジオ2013にv140ビルドツールをインストールすることは可能ですか?もしそうなら、どうですか?
- 11. どのようにグローバルなインポートとインポートされたものがどこから得られますか?
- 12. NSStringの値の後に名前が付けられたオブジェクトを作成することは可能ですか?
- 13. カスタムコントロールで新しいものを描画する前に描画したものをすべてクリアするにはどうすればよいですか?
- 14. mathematicaでこのダイナミックプロットはどのように可能ですか?
- 15. Socket.io - socket.ioでチャットアプリ以外のものを作ることは可能ですか?
- 16. WPのクローン可能なメタボフィールドをどのように入れ子にすることができますか?
- 17. jQueryでは、どのようにして以前に追加しなかったコンテンツをもう一度追加することができますか?
- 18. 以前の夜間ビルドをダウンロードすることは可能ですか?
- 19. これらのGoogleマップマーカーをフィルタリング可能にするにはどうすればよいですか?
- 20. これらのFirebase ValueEventListenersを読み取り可能にするにはどうすればよいですか?
- 21. top.window.nameのようなものを使用することは可能ですか
- 22. これはどのように可能ですか?誰かがこれを説明できますか?
- 23. アンドロイド/ windows phone/symbianでも以下のことが可能ですか?
- 24. このgoogledrive.comフィッシングはどのように可能ですか?
- 25. Jenkinsのパイプラインステージは、以前のステージが失敗した場合でも常に実行されることをどのようにして保証しますか?
- 26. このJavaScript Cookieをクリアするにはどうすればよいですか?
- 27. Firefox5以上の拡張可能なテキストエリア機能をブロックするにはどうすればよいですか?
- 28. Firefox WebExtensionがFirefox 51より前にアンインストールすることは可能ですか?
- 29. ReactJSサーバレンダリングをクライアントから送信されたデータとともに使用することは可能ですか?
- 30. 以前に割り当てられたリストをクリアするとC#辞書の値がクリアされます。なぜですか?
チャールズ・ペッツォールドのWindowsプログラミングの精密な研究は読んでいますか?あなたは確かにそこに答えを見つけるでしょう。 –