Je crée un code pour une boîte de dialogue avec un groupe radio dans le cadre d'un formulaire de préférences. Une partie de notre code est que lorsque le formulaire de préférences est ouvert, le groupe radio est cliqué, ce qui configure une bande de choses (c.-à-d. Si le bouton radio est "OFF", une bande de configuration est cachée).
Qu'est-ce que je Vous voulez savoir lorsque l'utilisateur clique réellement sur le groupe de radio, par opposition à celui-ci lorsque la boîte de dialogue Préférences s'ouvre. P>
Donc, le code ressemble à ceci: P>
(open preferences)... rgMyGroupClick(nil) procedure TdlgPreferences.rgMyGroupClick(Sender:TObject) if sender <> nil then begin //do something useful end;
3 Réponses :
Si je vous comprends correctement, vous cliquez sur votre radiogroupe pour configurer l'état initial du formulaire, mais vous avez du code supplémentaire dans le gestionnaire de clic que vous ne voulez pas exécuter?
Si c'est le Case Vous voudrez peut-être envisager de supprimer le code qui définit l'état du formulaire à sa propre méthode, puis l'appelez à partir de l'événement de clic radio et à partir de la version initiale / Afficher / Création de votre formulaire. P>
De cette façon, vous pouvez utiliser le même code pour définir le formulaire sur votre état requis à partir d'un utilisateur clic et le définir de manière programmée sans faire de logique supplémentaire requis lorsqu'un utilisateur interagit avec la boîte de dialogue. Ou peut-être que j'ai complètement mal compris votre problème ... p>
quelque chose comme ceci: p>
Yup, un cas classique de refactoring.
tester votre expéditeur strud> Vous pouvez tester l'expéditeur de deux manières: p> ou vous pouvez tester le type d'expéditeur. P> procedure TdlgPreferences.rgMyGroupClick(Sender:TObject)
begin
//TObject does not have a 'tag' property, but all TControls do...
if (sender is TControl) and (TControl(Sender).Tag = 10) then ....
Essayez certaines fonctions ou propriétés, comme: Remarque: lors de l'utilisation de l'obj Sender du donc, BoutonClick (expéditeur: Tabject) code> (par exemple)
Sender = classe de bouton du clic => tbutton p> tbutton (expéditeur) .properties code> ou méthodes, etc. p> p> P>