De multiples formes en delphi
Dans mon Delphi Projet je veux avoir un bouton 'Paramètres' que quand on clique dessus, ouvre un deuxième formulaire (je pense que c'est le terme exact, j'ai essentiellement veux une nouvelle fenêtre pour l'ouvrir), pour les paramètres.
Lorsque l'utilisateur a fini de changer les paramètres sur cette nouvelle forme, je veux que le formulaire de fermer un clic sur le bouton.
Les paramètres de l'utilisateur en aura besoin aussi d'être accessible à la première, la principale forme.
Ainsi, par exemple, si mon programme se composait d'un formulaire principal, qui calcule 'A' + 'B' (A et B étant des variables de type entier), avec les paramètres de formulaire permettant à l'utilisateur de définir des valeurs pour A et B, comment pourrais-je faire cela?
Vous devez vous connecter pour publier un commentaire.
Ce n'est pas trop difficile si vous comprenez Delphi modèle d'objet. Un formulaire est un objet qui descend de TObject, soutenu par un fichier DFM pour rendre la configuration de la mise en page plus facile. Les contrôles sont d'autres objets, et par défaut, ils sont visibles à d'autres objets à partir d'autres unités, comme votre autre forme. Il y a deux façons de le faire.
Le moyen le plus facile est d'avoir votre autre forme du code lire les valeurs de la contrôle directement une fois que vous avez terminé avec la première forme. Juste des trucs comme
MyString := Form2.EditBox.Text;
. Ce n'est pas particulièrement bon style, mais il fonctionne.La bonne façon de le faire est de mettre les propriétés publiques sur votre formulaire qui permettra de récupérer les valeurs des contrôles, ou une fonction qui va lire et retourner une sorte d'objet ou d'enregistrement contenant tous les paramètres. Cela prend un peu plus de travail, mais les résultats en nettoyant le code qui est moins susceptible de causer des problèmes si vous modifiez les choses en bas de la route.
EDIT: En réponse à la question dans le commentaire:
De faire un formulaire d'afficher et de masquer un autre, vous appelez d'Afficher et de Masquer sur elle. Ou si vous souhaitez qu'il s'affiche dans une boîte de dialogue modale, appelez la méthode ShowModal, qui prend soin de la cacher pour vous, aussi longtemps que vous créez un bouton qui définit ModalResult. (Voir le fichier d'aide pour plus de détails sur la façon dont ces méthodes de travail.)
Bien sûr, le formulaire a été créé en premier. Soit il peut être autocreated par la RMR, ce qui est bon pour les programmes simples, mais pas si grand une fois que vous obtenez beaucoup de formes dans votre application, ou vous pouvez créer dans le code. Henk a un exemple de la façon de le faire, bien que je ne recommanderais pas à l'aide de la avec mot-clé. Et si vous avez créé vous-même le formulaire, assurez-vous de le libérer par la suite.
J'ai l'habitude de concevoir les paramètres de forme et d'ajouter une fonction de classe exécuter pour elle, que les modifications apportées à un document contenant des champs pour les paramètres comme ceci:
Vous l'appeler comme ceci:
Je voudrais créer un Paramètres des Objets dans form1 et envoyer le formulaire 2: