表示するナビゲータ ボタンの選択
レコード間の移動と操作 への移動
設計時に初めてフォームに TDBNavigator を配置したときは、そのすべてのボタンが表示されます。VisibleButtons プロパティを使用すると、そのフォームで使用しないボタンを非表示にできます。たとえば、単方向データセットを扱う場合に意味があるのは、最初、次、更新のボタンだけです。編集を行わずに閲覧だけを行うフォームでは、編集、挿入、削除、登録、キャンセルのボタンを無効にした方がよいかもしれません。
設計時のナビゲータ ボタンの表示と非表示
VisibleButtons プロパティは、[オブジェクト インスペクタ]で[+]記号付きで表示されます。これは、このプロパティを展開して、ナビゲータの各ボタンの論理値を表示できることを示しています。これらの論理値を表示して設定するには[+]記号をクリックします。[オブジェクト インスペクタ]の VisibleButtons プロパティの下に、オン/オフできるボタンのリストが表示されます。[+]は[-](マイナス)記号に変化します。これをクリックすればプロパティのリストを折りたたむことができます。
ボタンが表示されるかどうかは、ボタンの値の論理値の状態で示されます。値が True の場合、そのボタンは TDBNavigator に表示されます。False の場合、設計時にも実行時にも、ボタンはナビゲータに表示されません。
メモ: ボタンの値を False に設定すると、そのボタンはフォーム上の TDBNavigator から削除され、残りのボタンがコントロールの幅いっぱいになるよう広げられます。コントロールのハンドルをドラッグすれば、ボタンのサイズを変更できます。
実行時のナビゲータ ボタンの表示と非表示
ユーザーの操作やアプリケーションの状態に応じて、特定のナビゲータ ボタンを実行時に表示したり非表示にすることもできます。たとえば、単一のナビゲータを使って 2 つの異なるデータセットの中を移動する場合を考えてみます。1 つのデータセットはユーザーがレコードを編集するためのもの、もう 1 つは読み取り専用です。データセットを切り替えたときに、ナビゲータの挿入、削除、編集、登録、キャンセル、更新の各ボタンは、読み取り専用データセットでは非表示にし、もう一方のデータセットでは表示すると効果的です。
たとえば OrdersTable ではナビゲータの挿入、削除、編集、登録、キャンセル、更新の各ボタンを非表示にして編集できないようにしますが、CustomersTable では編集を許可することが考えられます。ナビゲータにどのボタンを表示するかは、VisibleButtons プロパティで制御します。次にイベントハンドラの記述例を示します。
procedure TForm1.CustomerCompanyEnter(Sender :TObject);
begin
if Sender = CustomerCompany then
begin
DBNavigatorAll.DataSource := CustomerCompany.DataSource;
DBNavigatorAll.VisibleButtons := [nbFirst,nbPrior,nbNext,nbLast];
end
else
begin
DBNavigatorAll.DataSource := OrderNum.DataSource;
DBNavigatorAll.VisibleButtons := DBNavigatorAll.VisibleButtons + [nbInsert,
nbDelete,nbEdit,nbPost,nbCancel,nbRefresh];
end;
end;