このような TPageControl にいくつかの TTabSheet があります。
タブ1 タブ2 タブ3 タブ4
しかし、最初のタブを特定の位置から開始したいなどです。
Tab1 Tab2 Tab3 Tab4
Delphi XE 内で開始位置を設定するにはどうすればよいですか? マウスクリックは正しく機能します。
最も簡単な解決策は、最初のタブのキャプションの前にスペースを追加することです (下の画像の 2 番目のサンプルを参照)。
PageControl.OnChanging
しかし、イベントを実装することによって、アクティブに設定できないダミーのタブを挿入することを選択します (最初のサンプルを参照) 。
procedure TForm1.PageControl1Changing(Sender: TObject;
var AllowChange: Boolean);
begin
AllowChange := not PtInRect(PageControl1.TabRect(0),
PageControl1.ScreenToClient(Mouse.CursorPos));
end;
Raize コントロールを見てみましょう。彼らのタブシート コントロールには多くの柔軟性がありますが、あなたが望むように動作するかどうかはわかりません。ダウンロード可能な素晴らしいデモ プログラムが用意されており、それを使って目的の動作をするかどうかを確認できます。欲しいものが見つからない場合は、メールで可能かどうか尋ねることもできます。
これは無料のライブラリではありませんが、IMO ではお金を払うだけの価値があります。私たちは Raize コントロールを頻繁に使用しており、非常に満足しています。