2017-01-15 3 views
-1

Je crée une petite application avec quelques raccourcis 'Recherche', F1 à F4 pour rechercher dans différentes tables d'une base de données, j'ai donc créé un TPageControl pour contenir la recherche champs et aussi afficher les résultats, donc j'ai 1 PageControl et 4 feuilles à onglets, mais j'essaie de mettre une instruction if pour définir le focus sur le champ de recherche approprié et je l'appelle sur l'événement OnShow de TPageControl, mais je reçois un message d'erreur: Form: TForm ne peut pas se concentrerComment appeler un ensemble de mise en forme sur une création de formulaire

Si je n'ai pas tout faux, c'est parce que le champ de texte est introuvable, vu que je montre la page avant que l'application puisse créer les éléments à l'intérieur de cette page, alors, comment puis-je modifier ce code ou où puis-je l'utiliser pour le faire fonctionner, juste me rappeler que je dois appeler cette procédure avec t Il raccourcit les touches plus tard.

La procédure que je utilise pour régler la mise au point est un simple SI avec 4 conditions dans mon cas réel:

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

Avez-vous essayé de définir ActiveControl? –

+0

Impossible de trouver cela sur le web (pas quelque chose que je peux comprendre au moins), pouvez-vous donner un exemple s'il vous plaît? – douglascast

+0

ActiveControl: = editFieldNames; –

Répondre

1

A plus d'aide 'explicite' d'un autre forum:

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

Pourquoi appelez-vous ActiveControl.SetFocus ici? Ceci est fait automatiquement. –

+0

J'apprends la programmation par moi-même, et malheureusement je n'ai aucun endroit pour suivre un cours dans ma ville (vivant presque dans Small Vile = /), et c'est la première fois que j'entends parler d'ActiveControl sur mon apprentissage, donc je suis un peu perdu, je vais essayer sans plus tard, merci pour la suggestion ^^ – douglascast

+0

Ne vous inquiétez pas. Un cours ne vous aurait probablement pas parlé d'ActiveControl non plus. –