Quelle est la différence entre actualiser, mettre à jour et repeindre?

Je ne sais pas laquelle de ces trois méthodes me convient le plus. Ils travaillent tous pour moi. Est-ce que quelqu'un connaît la différence entre actualiser, mettre à jour et repeindre?

41
demandé sur w5m 2009-08-09 13:20:05

3 réponses

Selon la documentation en ligne.

Actualiser - Repeint le contrôle à l'écran.

Appelez la méthode Refresh pour repeindre contrôle immédiatement. Actualiser les appels de la Repeindre méthode. Utilisez le rafraîchissement et Repeindre les méthodes de manière interchangeable.

Repeindre - force le contrôle de repeindre son image sur l'écran.

Appelez Repaint pour forcer le contrôle à repeindre son image immédiatement. Si l' Propriété ControlStyle comprendre csOpaque, le contrôle se peint directement. Sinon, le repeindre appelle la méthode Invalidate et ensuite, la méthode de mise à jour de sorte que tout parties visibles des commandes sous le contrôle sera également repeint.

Update - traite immédiatement tous les messages de peinture en attente.

Appelez Update pour forcer le contrôle à être repeint avant tout plus, éventuellement prend du temps, le traitement prend lieu. Utilisez la mise à jour pour fournir immédiat commentaires à l'utilisateur qui ne peut pas attendre pour le message Windows paint à arriver.

La mise à jour n'invalide pas contrôle, mais force simplement un repeint de toutes les régions qui ont déjà été invalider. Appelez Repaint à la place pour invalider le contrôle ainsi.

39
répondu stukelly 2009-08-09 09:34:41

Votre question est déjà répondue, mais si vous avez besoin de bonnes performances et moins de scintillement, vous devriez appeler Invalidate à la place. Il permet à Windows d'optimiser le processus de peinture.

Invalider - repeindre complètement le contrôle.

Utiliser invalider lorsque le contrôle entier besoin d'être repeint. Lorsque plus d' une région dans les besoins de contrôle repeindre, invalider provoquera le fenêtre entière à repeindre dans un passage simple, évitant le scintillement causé par repeints redondants. Il n'y a pas de les performances de l'appel Invalider plusieurs fois avant le le contrôle est en fait repeint.

32
répondu Lars Truijens 2009-08-09 10:12:13

Par une référence VCL plus ancienne (CBuilder 6):

Invalider "Invalider l'annonce d'un contrôle que toute sa surface doit être repeint. L'appel D'Invalidate peut empêcher le scintillement causé par une série de repeints partiels. Il n'y a pas de pénalité de performance pour appeler Invalidate plusieurs fois avant que le contrôle ne soit réellement repeint".

La peinture réelle ne se produit pas tant que le contrôle n'est pas mis à jour. Pour forcer un repaint immédiat, appelez Repaint plutôt.

Repaint " TWinControl:: Repaint appelle la méthode Invalidate puis la méthode Update pour repeindre le contrôle "(légère paraphrase).

(malheureusement, l'ancienne référence est meilleure et plus complète que la référence la plus récente que j'ai (CBuilder 2007).

3
répondu jeff slesinger 2011-10-21 21:11:44