問題タブ [vcl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
delphi - フォームが更新されない
私のアプリケーションでは (メイン フォームは TTntForm、C++Builder 2006):
この問題の原因は何ですか?
編集: ご回答いただきありがとうございます。バグを見つけました。プロジェクト ファイルで 2 回フォームが作成されました:
delphi - delphi7のスキン
私は自分のアプリケーションのスキンを作成したいと思っていますが、これを行う明確な方法がないように見えることに気づきました。
私はJavaのファイルのスキニングに慣れていて、「標準」のdelphi7アプリケーションの外観を変更する方法があるかどうか疑問に思いました。
編集:(taggs)
delphi - TGraphicControlの子孫であるコンポーネントにマウスホイールサポートを追加するにはどうすればよいですか?
TGraphicControlから派生したdelphiコンポーネントを作成しました。マウスホイールのサポートを追加することは可能ですか?
- - 編集 - -
以下に示すようにMouseWheelイベントを公開しましたが、呼び出されません。
- - 編集 - -
以下に示すように、WM_MOUSEWHEELメッセージとCM_MOUSEWHEELメッセージをトラップしようとしましたが、機能していないようです。しかし、私はなんとかCM_MOUSEENTERメッセージをトラップすることができました。あるタイプのメッセージをトラップできるのに、他のタイプのメッセージをトラップできない理由がわかりません。
delphi - 一部の Delphi コンポーネントでは、それらを構築するために「AOwner: TComponent」が必要なのはなぜですか?
ある種のオブジェクトをインスタンス化するために所有者として TComponent を要求することは、まったく無関係に思えます。これを必要とする Delphi コンポーネントが非常に多いのはなぜですか?
たとえば、TXMLDocument をインスタンス化するには、TComponent オブジェクトが必要です。
これはなぜですか? 正当な理由がある場合、「正しいことを行う」ために何を使用すればよいですか?
windows-vista - 右側にアンカーされたコントロールを含む Borland C++Builder 5 フォームが Vista で正しく表示されないのはなぜですか?
解決策を探すのに少し時間を費やし、現在それを見つけたので、これは Stack Overflow で文書化するのに適していると考えました。したがって、私の答えはこの質問の直後に続きます。
私は Borland C++ Builder 5 を使用していました。これはおそらく、同等のバージョンの Delphi にも当てはまります。TPanel に TButton を含むフォームがありました。ボタンは akRight,akBottom に設定されました。XP およびそれ以前の Windows では、すべて問題ありませんでした。Vista で Aero を使用すると、ボタンが右に 4 ピクセルずれて表示されました。アンカリングは引き続き正常に機能しました。
もう 1 つの例は、akTop、akRight、akLeft を持つ TComboBox を含むフォームです。コンボは、Vista では 4 ピクセル幅が広すぎます。
Vista で「クラシック」な外観に戻すと、すべてが正しく表示されます。
delphi - TDBNavigator コンポーネントの動作を変更するには?
標準 DBNavigator バーの挿入ボタンの動作を、データセットの挿入から追加に変更したいと考えています。
ボタンのクリックを BeforeAction イベントでトラップしたり、追加を行ったりすることができます。次に、OnClick イベントで元の挿入を中止しますが、これは少しハックのようです。より良いアイデアはありますか?私は D6 を使用しています (時計で 500,000 kms、そしてまだ強くなっています...)。
アドバイスをありがとう
よろしく、
PhilW.
delphi - TGraphicControl.Paintはいつ呼び出されますか?
ユーザーがSDLレンダリングサーフェスをVCLフォームに埋め込むことができるカスタムTGraphicControl子孫を作成しようとしています。これにより、SDLアニメーションをフォームに表示する簡単な方法が提供されます。
どうやらTGraphicControlはPaintメソッドで再描画されているようです。これはどのくらいの頻度で呼び出されますか?何かがコントロールを無効にすることが起こったときだけですか、それともそれを呼び出す他のものがありますか?それはそれ自身の描画を行う何かとどのように相互作用しますか?
delphi - コンポーネントの作成またはストリーミング中にハンドルを使用してはならないのはなぜですか?
SDL_CreateWindowFrom 関数を介して SDL レンダリング サーフェスをラップするカスタム VCL コントロールを作成したいと考えています。SDL_CreateWindowFrom は、既存の HWND ハンドルを取得し、高性能レンダリング コンテキスト (DirectX や OpenGL を含むいくつかのバックエンドが利用可能) をそれに配置します。
ヘルプファイルには、「コンポーネントの作成中またはストリーミング中にハンドル プロパティを参照しないでください」と記載されています。しかし、それは理由を述べていません。最初に Handle プロパティにアクセスしようとすると、有効なハンドルが存在することを確認するために HandleNeeded が呼び出されます。
そこで、質問が 2 つあります。1: コンポーネントの作成中に Handle プロパティを参照してはならない理由は何ですか? 2. コントロールのポイント全体が、HWND の初期化を必要とするレンダリング サーフェスをラップすることである場合、(理想的には) 作成/ストリーミング中に行われるべき初期化を安全に実行できるのはいつですか?