掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
TOpenDialog上でキー押下を検出するには?(その2) (ID:38751)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
一応実験コード type TCustomOpenDlg = class(TOpenDialog) private FComboBox: TComboBox; FLabel: TStaticText; protected procedure DoShow; override; public constructor Create(AOwner: TComponent); override; function Execute: Boolean; override; end; constructor TCustomOpenDlg.Create(AOwner: TComponent); begin inherited Create(AOwner); FLabel := TStaticText.Create(Self); FLabel.Caption := 'コード(&C):'; // アクセスキーを設定 FComboBox := TComboBox.Create(Self); end; procedure TCustomOpenDlg.DoShow; var rc: TRect; begin // コントロールの親をダイアログにする FLabel.ParentWindow := Handle; FComboBox.ParentWindow := Handle; // 適当に配置 rc := GetStaticRect; FLabel.Left := rc.Right; FLabel.Top := rc.Top; FComboBox.Left := rc.Right; FComboBox.Top := rc.Top + 16; inherited DoShow; end; function TCustomOpenDlg.Execute; begin // TOpenPictureDialogの真似 if NewStyleControls and not (ofOldStyleDialog in Options) then Template := 'DLGTEMPLATE' else Template := nil; Result := inherited Execute; end; これでAlt+Cでダイアログ内のコンボボックスにフォーカスが移動します。 ParentWindowを設定する必要があるので、やはりラベルはTStaticTextでないといけませんね。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.