Dans Delphi 2009, j'ai trouvé que le scintillement d'un PageControl - qui se produit lors du redimensionnement du formulaire - peut être réduit en définissant sa propriété DoubleBuffered
sur true. Toutefois, si j'ajoute des contrôles aux feuilles d'onglets PageControl, ils clignoteront quel que soit leur paramètre de propriété DoubleBuffered. J'ai également essayé avec et sans thèmes d'exécution activés.Comment est-ce que je peux réduire le flicker de PageControl dans Delphi?
Répondre
Réglage ParentBackground
à False
pour les composants sur le PageControl aidé beaucoup. Cependant, cela se traduit par une couleur différente de ces composants du panneau, ils ont tous un fond plus sombre maintenant. Peut-être que cela peut être réparé facilement (sans perdre le support du thème).
J'ai également installé VCL Fix Pack qui a un correctif pour QC 56252 (TPageControl scintille beaucoup avec le thème actif).
Ce qui est loin d'être parfait, mais vous voudrez peut-être utiliser ceci:
protected
procedure WMExitSize(var Message: TMessage); message WM_EXITSIZEMOVE;
procedure WMEnterSize(var Message: TMessage); message WM_ENTERSIZEMOVE;
procedure TFormMain.WMEnterSize(var Message: TMessage);
begin
if Assigned(PageControlView.ActivePage) then
PageControlView.Align := alNone;
end;
procedure TFormMain.WMExitSize(var Message: TMessage);
begin
if Assigned(PageControlView.ActivePage) then
PageControlView.Align := alClient;
end;
Il est le meilleur que je trouve loin, et réduira les fenêtres mise à jour de votre contrôle de page. Il pourrait être moins joli, cependant, mais c'est une question d'opinions ...
Merci pour cette idée. Cependant maintenant je pense qu'il y a une solution - placer ParentBackground à False pour les composants sur le PageControl. Je ne savais pas que créer une simple interface graphique RAD pouvait être si difficile :) – mjn
Il n'y a rien de plus simple, quand vous avez un mélange de code de bibliothèque de contrôles communs Windows, et d'autres choses qui ne sont pas des contrôles Windows. Ce n'est que la pointe de l'iceberg. –
- 1. Delphi TStringGrid Flicker
- 2. Formulaire Delphi Réduire le problème
- 3. Comment est-ce que je peux réduire notre Text-to-Speech de pointe?
- 4. Qu'est-ce que le composant Delphi Gantt/Scheduler est-ce que je peux utiliser?
- 5. Xcode - comment désactiver pagecontrol?
- 6. Pourquoi aucune animation dans le projet PageControl?
- 7. Comment est-ce que je peux réduire le passe-partout dans mes propriétés en utilisant des attributs?
- 8. Delphi: Réduire l'application à systray
- 9. Comment implémenter des vues sur le pagecontrol
- 10. comment je peux tracer une adresse IP en utilisant delphi
- 11. Comment puis-je dire à Bison que je m'attends aussi à des conflits réduire-réduire?
- 12. Comment est-ce que je peux boucler avec le tableau?
- 13. Réduire Delphi application avec menu Live Popup
- 14. Y at-il un contrôle WPF que je peux utiliser pour développer/réduire des panneaux (animés)
- 15. C# - Je sais que je peux le faire dans LINQ, mais je ne peux pas le faire fonctionner
- 16. Comment est-ce que je peux réduire une exécution de git bisect en utilisant des chemins de fichier?
- 17. Comment réparer Flicker dans un formulaire WinForms?
- 18. Comment puis-je implémenter un OutputStream que je peux rembobiner?
- 19. Réduire une application externe avec Delphi
- 20. Comment est-ce que je peux normaliser/réduire des chemins ou des URLs en Python indépendamment de l'OS?
- 21. Comment vérifier que je peux SUM valeurs de type donné
- 22. Comment est-ce que je peux réduire makefile warmplate en faisant des constructions hors-de-source et Java?
- 23. Flicker de contenu non formaté dans Firefox
- 24. Comment est-ce que je peux supprimer le "travail de fin de lot" dans Win7 cmd.exe
- 25. Comment est-ce que je peux changer le préfixe d'espace de noms dans ce WSDL?
- 26. Comment est-ce que je peux limiter le nombre d'articles retournés dans la division de Perl?
- 27. comment est-ce que je peux éditer le combobox dans une cellule de datagridview éditable?
- 28. comment est-ce que je peux enregistrer l'image cryptée dans le serveur de sql?
- 29. Comment est-ce que je peux rendre le paysage de vue d'UIViewController dans la mémoire?
- 30. Jquery Hover Flicker de fond dans IE
Oui, l'utilisation de contrôles de page redimensionnables est douloureuse. Dans la plupart des cas, dans mon expérience, définir la propriété double buffered de chaque contrôle (contrôle de page et chaque contrôle enfant) sur true résout la plupart du problème, mais dans certains cas, provoquera d'autres problèmes de rendu, pour certains contrôles enfants. Comme je suis très préoccupé par la qualité visuelle, j'ai tendance à 1) activer le double buffering sur le redimensionnement, et utiliser une minuterie pour le désactiver 1/5 de seconde après le dernier événement de redimensionnement, 2) * masquer * le contrôle entier de la page pendant le redimensionnement (et remplacez par un "indicateur de taille de fenêtre"), ou 3) développez mes propres commandes personnalisées. –
Utilisez-vous des contrôles de base de données? Que peut-être TDataSet.DisableControls lors de la mise à jour/ajout aidera. –
Il serait utile que vous nous disiez quand et où le scintillement se produit. –