Si vous avez utilisé "Kingsoft PowerWord" ou "Orient Express", vous serez certainement intéressé par les sous-titres déroulants dans leur fenêtre "A propos". En fait, cette fonction peut être facilement réalisée à l'aide du contrôle Timer de Delphi.
1. Idées de conception
Tout d’abord, placez un contrôle Panel sur le formulaire et placez le texte qui doit être affiché dans le contrôle Panel. Ensuite, via le contrôle Timer, la position du contrôle Panel peut être modifiée en continu dans un certain intervalle pour obtenir l’effet de roulement. sous-titres.
2. Modalités de mise en œuvre
1. Créez un nouveau formulaire et définissez ses propriétés comme suit :
Nom :frmÀ propos1
Défilement automatique : Faux
2. Placez un contrôle Panel sur le formulaire, son nom par défaut est Panel1 et définissez ses propriétés comme suit :
Biseau extérieur : bvAucun
Légende : (définie sur vide)
Ajustez la hauteur et la largeur de Panel1 pour en faire une bande verticale. La hauteur dépend du contenu à afficher (elle peut être supérieure à la hauteur du formulaire).
3. Placez un contrôle Label sur Panel1 pour afficher du texte. Bien sûr, vous pouvez également y placer un contrôle Image pour afficher des images, mais la taille de l'image ne doit pas être trop grande, sinon cela affectera l'effet d'affichage.
4. Placez un contrôle Timer sur le formulaire, son nom par défaut est Timer1, définissez la valeur de sa propriété Interval sur 50 et entrez le code suivant dans son événement OnTimer :
si Panel1.top>-Panel1.height alors
Panneau1.top :=Panneau1.top-1
autre
Panel1.top:=frmAbout1.height-35;
{Déterminez si Panel1 s'est déplacé vers le haut du formulaire. Sinon, déplacez-le d'un pixel. Si c'est le cas, déplacez Panel1 vers le bas du formulaire et affichez les sous-titres en boucle.}
5. Placez un contrôle Button sur le formulaire, définissez sa propriété Caption sur « OK » et saisissez le code suivant dans l'événement OnClick :
close;{Fermer le formulaire}
3. Améliorer l'analyse
Ce qui précède est un processus simple d'implémentation de sous-titres déroulants, mais il reste encore un domaine qui doit encore être amélioré : si le formulaire utilise une image comme arrière-plan, le contrôle Panel bloquera une partie du motif d'arrière-plan. En fait, pour résoudre ce problème, nous ne pouvons pas du tout utiliser le contrôle Panel, mais placer directement le contrôle Label sur le formulaire, définir la valeur de la propriété Transparent du contrôle Label sur True, puis contrôler directement ces contrôles Label via le Timer. contrôle du mouvement. Faute de place, l’auteur ne le détaillera pas ici.