TSplitter/ja
Deutsch · English · Français · Suomi · Русский · 日本語
A TSplitter
はサブパネルを機能的に分離するための垂直、あるいは水平の棒である。
このコントロールはフォームを視覚的に2つに分離するために用いられ、アプリケーションを垂直、または水平に移動することを可能とする。これはComponent PaletteのAdditional tabにある。
TSplitterは基本的に2つの異なるモードを持つ。Align (Delphi 式)とAnchorSides(Delphiではサポートされない)である。
Splitter と並び
並びは2つのコントロール、またはコントロールの行のような多くの簡便なレイアウトに用いることができる。例えば、メモやリストボックスのように自由にサイズが変更できるあるコントロールが必要な時である。
以下はこれをデモしている。
設計時
- 新しいformを作る
- TMemoをフォームに配置する(TMemoアイコンをコンポーネントパレットで左クリックして選択しフォームに左クリックして配置)。
- オブジェクトインスペクタ でMemo1を
alLeftに設定する。 - フォームにTSplitterを配置。
- デフォルトの並びはすでに
alLeftとなっている。 - もう1つのTMemoをフォームに配置する。
- オブジェクトインスペクタでMemo2を
alClientに設定する。
実行時
オブジェクトインスペクタのデザイナに代わって上記と同じアクションをコードで行うこともできる:
procedure TMainForm.FormCreate(Sender: TObject);
var
Memo1: TMemo;
Splitter1: TSplitter;
Memo2: TMemo;
begin
Memo1:=TMemo.Create(Self);
with Memo1 do begin
Name:='Memo1';
Parent:=Self;
Align:=alLeft;
end;
Splitter1:=TSplitter.Create(Self);
with Splitter1 do begin
Name:='Splitter1';
Parent:=Self;
Left:=1; // Memo1の配置を左へ
Align:=alLeft;
end;
Memo2:=TMemo.Create(Self);
with Memo2 do begin
Name:='Memo2';
Parent:=Self;
Align:=alClient;
end;
end;アンカーサイドを持つSplitter
アンカーサイドはより調整されたレイアウトを可能にする。並びはすべての余地を埋める。アンカーサイドは他のどの姉妹コントロールにもつけられる。
設計時
- 新しいformを作る
- TMemo をフォームに配置する(TMemoアイコンをコンポーネントパレットで左クリックして選択しフォームに左クリックして配置)。
- オブジェクトインスペクタ でMemo1を
alLeftに設定する。 - フォームにTSplitterを配置。
- Splitter1の並びのプロパティを
alNoneとする。 - Memo1を選択
- ビュー -> アンカーエディタ
- Memo1の右側にSplitter1に対してアンカーを置く。
- 別のTMemoをフォームに配置。
- Memo2の並びのプロパティを
alRightとする。 - Splitter1に対してMemo2の左側にアンカーを置く。Splitter1の右側にアンカーすることを忘れないこと(コンボボックス下のアンカーエディタ上にボタンがつく)。.
実行時
オブジェクトインスペクタのデザイナに代わって上記と同じアクションをコードで行うこともできる:
procedure TMainForm.FormCreate(Sender: TObject);
var
Memo1: TMemo;
Splitter1: TSplitter;
Memo2: TMemo;
begin
Memo1:=TMemo.Create(Self);
with Memo1 do begin
Name:='Memo1';
Parent:=Self;
Align:=alLeft;
end;
Splitter1:=TSplitter.Create(Self);
with Splitter1 do begin
Name:='Splitter1';
Parent:=Self;
Align:=alNone;
Left:=100; // 同じ値
AnchorParallel(akBottom,0,Parent);
end;
Memo1.AnchorToNeighbour(akRight,0,Splitter1);
Memo2:=TMemo.Create(Self);
with Memo2 do begin
Name:='Memo2';
Parent:=Self;
Align:=alRight;
AnchorToNeighbour(akLeft,0,Splitter1);
end;
end;Splitterの色
デフォルトでTSplitterは色付けされている。そのため色彩プロパティを割り当てることは色には影響しない。しかしダミーのOnPaintイベントでテーマカラーは無効にできる。
Splitter1.OnPaint:= @SplitterOnPaintDummy;
Splitter1.Color:= clGreen;
....
procedure TfmMain.SplitterOnPaintDummy(Sender: TObject);
begin
//空にする。テーマカラーを無効にする
end;以下も参照のこと
From the Free Pascal wiki, page "TSplitter/ja", as the Internet Archive kept it on 2025-05-15, last changed on 2024-09-23. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.
Talk about this page
Nobody has opened a bench for this page yet. Sign in to open one.
