問題タブ [tpagecontrol]

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.

0 投票する
2 に答える
5416 参照

delphi - vclスタイルをサポートしていないタブシートの閉じるボタン

この例で提供されているコードを使用して、TPageControlのTTabsheetに閉じるボタンを実装してページコントロールの各タブシートに閉じるボタンを描画する方法コード内でThemeServicesをStyle Servicesに置き換え、スタイルを適用するときに閉じるボタン表示も反応もしません。誰かが私にこの問題を解決するための別の道を教えてもらえますか?ありがとう!これは、OnDrawTabイベントのコードです。

0 投票する
1 に答える
8845 参照

delphi - テーマの TabSheet キャプションのテキストの色を変更するにはどうすればよいですか?

良い一日!

TPageControl の一部の TabSheet のキャプションのテキストの色を変更する必要があります。写真のようなもの

ここに画像の説明を入力

OnDrawTab を使用してそれを行う方法を知っています。しかし、OwnerDraw を有効にすると、Windows XP テーマの装飾が消えてしまいます。そのため、この装飾を手動で描画しようとしています。これは私がこれをやろうとした方法です:

そして、私はこれを手に入れました

ここに画像の説明を入力

(左 - OwnerDraw バージョン、右 - デフォルトの描画)

ご覧のとおり、TabSheets にはオーバードローされていない境界線がいくつかあります。そして、この境界線をオーバードローすることはできません。

タブの背景を正しく描画するにはどうすればよいですか (右側の PageControl など)。

0 投票する
2 に答える
37365 参照

delphi - ページコントロールにタブシートを動的に追加し、フォームを埋め込みますか?

ページコントロールで構成されるモジュールに取り組んでいます。デフォルトでは、このページコントロール(TPageControl)にはタブシート()はありませんTTabSheetが、初期化時に、これらのページを動的に挿入し、その中にフォームを埋め込む必要があります。

問題は、タブシートをページコントロールに挿入する方法を知っていることにあります。これを作成するにはどうすればよいですか?そして、それが作成されたら、それぞれのフォームと一緒に、フォームを破棄するためにそれらを反復処理するにはどうすればよいですか?

0 投票する
5 に答える
654 参照

windows - TPageControlはインデックスを取得します

オブジェクトがあるページの番号を取得するにはどうすればよいですか?例:最初のページにButton1があり、2番目のページにButton2がある場合、ActivePageIndexのないButton1があるページの番号を取得するにはどうすればよいですか?ありがとう。

0 投票する
2 に答える
944 参照

delphi - TIdCmdTCPServer OnConnect イベントで Tabsheet を PageControl に安全に追加するにはどうすればよいですか?

クライアントがこのコードと同じように接続したときに、Tabsheetに動的に追加したい:PageControlIdCmdTCPServer

問題ありませんが、アプリケーションを閉じると、「システム エラー。コード: 1400。無効なウィンドウ ハンドル」というメッセージが表示された EOSError が表示されます。TButtonのイベントにこのコード ブロックを追加しましたOnClick。アプリケーションは問題なく終了します。これを行うより安全な方法はありますか?


David Heffernanの助けを借りて、方法を次のように変更しました。

コマンドのテスト結果:

addtab コマンドのテスト結果

しかし、言及された問題は、アプリケーションの終了時に発生する鋼です!

0 投票する
0 に答える
1026 参照

delphi - DELPHI - TPageControl の PNG 画像

私の Delphi XE3 アプリケーションでは、TPageControl コンポーネントを MainForm に配置しました。「Images」プロパティを、いくつかの PNG 画像を含む ImageList にリンクしました。各 TTabSheet の「画像インデックス」プロパティを設定すると、設計時に画像が正しく表現されます。それ以外の場合、アプリケーションを実行すると、TTabSheet に含まれるすべての画像 (背景なしである必要があります) が黒い四角の領域で囲まれていることがわかります。ImageList の設定を確認すると、次のことがわかります。

  • -BkColor: clNone
  • -BlendColor: clNone
  • -色深度: cd32bit
  • -DrawingStyle: dsTransparent
  • -ImageType: itImage
  • -マスク: False


問題に関連するかどうかはわかりませんが、プロジェクトの設定を変更し、「ランタイムテーマを有効にする」という音声を有効にすると、この問題は解決されることに注意してください。

ありがとう。

0 投票する
2 に答える
10152 参照

delphi - オーナー描画の TPageControl タブの見栄えを良くする (オーナー描画を使用しない場合と同様)

Delphi7、PageControl と owner-draw を使用しています。所有者が描画していない PageControls で見られるように、タブの見栄えがよくありません。悪い点: オーナー描画を使用すると、「全体」のタブ ヘッダー領域に描画できません。タブ ヘッダーの周りの小さな 1 ~ 2 ピクセルのフレームが OS によって描画されます。

1) Delphi はオーナードローではなく、外観も問題ありません (XPMan を使用):

デルファイ システム

2) Delphi オーナー ドローでは、タブ ヘッダー全体に色を付けることができないことがわかります (XPMan を使用):

デルフィ オーナー ドロー

ここでは、現在のタブを青で、他のタブを白で描画します。例のみ。コード:

2b) 実際のアプリでの Delphi オーナー ドロー (XPMan を使用):

デルファイリアルアプリ

オーナードローを使用する必要があるのはなぜですか? 単純。タブ ヘッダーに X ボタンを描画したり、上部の線をカスタム カラーでペイントしたり、イメージリストからアイコンをペイントしたりします。

PageControl オーナー描画イベントに与えられる減少 rect ではなく、タブ ヘッダーの ENTIRE rect をペイントする方法を探しています。所有者描画イベントによって指定された四角形を増やそうとしましたが、これは役に立ちません.OSはとにかくタブヘッダーの周りにこの薄い1〜2ピクセルのフレームを再描画します.

0 投票する
0 に答える
2586 参照

delphi - PageControl 縦キャプション

TabPosition が「tpLeft」に設定された PageControl があります。そのプロパティを設定すると、タブのキャプションも垂直になりますが、これらのキャプションを通常の水平方向に表示したいので、TabHeight を変更しようとしましたが、幅が広くなり、テストはまだ垂直に表示されます。

どうすれば修正できますか。

DELPHI XE5 の使用

更新:このコードは機能します(「Ken White」に感謝します):

しかし、これはそれを行うための「正しい方法」ですか?他に良い方法はありますか?

0 投票する
2 に答える
886 参照

delphi - DelphiでTPageControlタブを個別のファイルに分割する方法は?

5 つのタブがある VCL フォームがありますTPageControl。それぞれTTabSheetのコンテンツはかなり関連性がなく、個別のコントロールと処理ロジックがたくさんあります...そのため、「そのタブだけ」のコードを扱いやすくするために分割したいと思います。のような行を持つ

もうそれをカットしていません。本当に、どうにかして各タブを別のファイルに入れたいと思います。

現在、TTabPage ごとに VCL フレームを作成することを検討しています。その場合、すべてのフレームをコンストラクターの TPageControl にロードするか、タブが表示されたときにロードする必要があります。

これは良いアプローチですか?タブごとに TForm 全体を作成したほうがよいでしょうか? TPageControl でタブをラップし続ける必要がありますか、それともコンテンツが動的に読み込まれる場合は TTabControl に変更する必要がありますか? これが良いアプローチである場合、起動時にすべてのタブをロードする方が良いですか、それともタブが表示されるたびにロードする方が良いですか? (ほとんど/すべての場合にどちらが優れているかが完全に明らかでない場合、おそらく長所/短所)