【Delphi】TSplitter 的使用

我們要設計一個固定左邊第一欄的表格, 如圖



* 先放一個 TDBGrid, Align 屬性為 alLeft

* 在 Additional 頁籤找到 TSplitter 元件, 放到 Form 上, Align 屬性為 alLeft

* 再放一個 TDBGrid, Align 屬性為 alClient

這樣就完成初步的樣子了, 接下來說明 Splitter 常用到的屬性:
* AutoSnap 和 MinSize 要放在一起講, 當 AutoSnap 為 true 時, 如果滑鼠向左移動 Splitter 到左邊的表格寬度小於 Splitter 的 MinSize 值時, 則放開滑鼠時, Splitter 會直接縮到最左邊, 以致看不到左邊的表格; 若 AutoSnap 為 false 時, 則 Splitter 只能向左移動到 MinSize 處, 左邊的表格也不會完全看不見.

* ResizeStyle 是指在移動 Splitter 時的視覺效果, 可自行改變值玩玩看.

* 如果要固定 Splitter, 不讓使用者可以移動改變其位置, 則可在 OnCanResize 事件中寫入

procedure TfrmMain.Splitter1CanResize(Sender: TObject; var NewSize: Integer; var Accept: Boolean);
begin
    Accept := false;
end;

這樣 Splitter 就被固定住了.