記事カテゴリ

ユーザー機能


 2024年2月28日(水) 07:35 JST

[Delphi] タブ順に処理をする

  • 投稿者:
  • 表示回数
    4,204

めんどくさがりなくろねこはシステムの必須入力チェックとフル桁入力チェックは業務入力チェックの前に出来ないかと考えた。
チェックの順番は、当然にタブ順がふさわしい。

タブ順を自分で管理するのはめんどくさい。エンターキーで[Delphi] Enterキーで次のフィールドに移動する の様な処理が出来るんだからきっと何か良い方法がある!
と調べた結果がGetTabOrderListだった。これを使うと単純なチェックはカスタマイズしたコントロールに持たせたチェックで終わらせることが出来そうだ!しかし、この関数いつからあるんだろう?

※TBC~はくろねこ製のオリジナルコンポーネントのメソッドで、CheckRequiredとCheckFillCharはそれぞれ必須入力チェック、フル桁入力チェックである。

procedure TForm1.CheckInputData(Sender: TObject);
var
  i: integer;
  CtrlList: TList;
  ctrl: TWinControl;
begin
  CtrlList := TList.Create;
  try
    GetTabOrderList(CtrlList);
    for i := 0 to CtrlList.Count - 1 do
    begin
      ctrl := CtrlList[i];
      if (ctrl is TBCCustomEdit) then // エディット
      begin
        if not TBCCustomEdit(ctrl).CheckRequired(true) then exit;
        if not TBCCustomEdit(ctrl).CheckFillChar(true) then exit;
      end;
      if (ctrl is TBCCustomComboBox) then // コンボボックス
      begin
        if not TBCCustomComboBox(ctrl).CheckRequired(true) then exit;
      end;
    end;
  finally
    CtrlList.Free;
  end;
end;

トラックバック

このエントリのトラックバックURL:
https://www.blackcat.xyz/trackback.php/ProgramingFAQ_del0074

以下のコメントは、その投稿者が所有するものでサイト管理者はコメントに関する責任を負いません。