2017-01-15 3 views
-1

いくつかの「検索」ホットキー、F1〜F4を使用してデータベースの異なるテーブルを検索する小さなアプリケーションを作成していますので、検索を保持するTPageControlを作成しました私は1 PageControlと4つのタブシートがあるので、私は1つのif文を入れて、適切な検索フィールドにフォーカスを設定しようとしていると私はTPageControlのOnShowイベントでそれを呼び出す、フォーム:TFormはフォーカスできませんフォームの作成にフォーカスを当てる方法

私が間違っていたのは、テキストフィールドが見つからないためです。アプリケーションが内部で要素を作成する前にページを表示しているためです。このコードを編集するにはどうすればいいですか?あるいは、どこでこのコードを使用して動作させることができますか?これをtで呼び出す必要があることを思い出してください彼は後でホットキーを押す。

procedure TForm.searchFocus; begin 
if pgcSearches.TabIndex=0 then begin 
editFieldNames.SetFocus; 
end 
else if pgcSearches.TabIndex=1 then begin 
editFieldAdresses.SetFocus 
end; 
end; 
+0

私はフォーカスを設定するために使用している手順は、IF私の実際のケースでは4つの条件とちょうど簡単ですActiveControlを設定しようとしましたか? –

+0

ウェブ上でこれを見つけることができません(少なくとも私が理解できるものではありません)。 – douglascast

+0

ActiveControl:= editFieldNames; –

答えて

1

別のフォーラムからより「明示的な」ヘルプ:

procedure TfrmMain.pcSearchesChange; 
begin 
case pcSearches.TabIndex of 
0: ActiveControl:=edtSearchSongs; 
1: ActiveControl:=edtSearchBibles; 
2: ActiveControl:=edtSearchWarning; 
end; 

if Visible then 
ActiveControl.SetFocus; 
end; 
+0

ここでActiveControl.SetFocusをなぜ呼びますか?これは自動的に行われます。 –

+0

私は自分でプログラミングを学んでいますが、悲しいことに私の町では(ほとんどSvile Vile = /に住んでいます)コースを取る場所がありません。私の学習でActiveControlについて聞いたのは初めてです。だから私はちょっと失ってしまった、後でそれを試してみるよ、提案ありがとう^^ – douglascast

+0

心配しないで。もちろん、コースではActiveControlについて話していないでしょう。 –

関連する問題