Quelle est la différence entre Actualiser, Mettre à jour et Repeindre?

Je ne sais pas laquelle de ces trois méthodes me convient le mieux. Ils travaillent tous pour moi. Est-ce que quelqu’un connaît la différence entre Refresh, Update et Repaint?

Selon la documentation en ligne.

Actualiser – Repeint le contrôle à l’écran.

Appelez la méthode Refresh pour repeindre le contrôle immédiatement. Refresh appelle la méthode Repaint. Utilisez les méthodes Refresh et Repaint de manière interchangeable.

Repeindre – Force le contrôle à repeindre son image à l’écran.

Appelez Repaint pour forcer le contrôle à repeindre son image immédiatement. Si la propriété ControlStyle inclut csOpaque, le contrôle se peint directement. Sinon, la méthode Repaint appelle la méthode Invalidate, puis la méthode Update afin que les parties visibles des contrôles sous le contrôle soient également repeintes.

Mise à jour – Traite immédiatement les messages de peinture en attente.

Appeler la mise à jour pour obliger le contrôle à être repeint avant que le traitement soit plus long, voire long. Utilisez Mettre à jour pour fournir un retour immédiat à l’utilisateur qui ne peut pas attendre l’arrivée du message Windows Paint.

La mise à jour n’invalide pas le contrôle, mais force simplement à repeindre les régions qui ont déjà été invalidées. Appelez Repaint plutôt que d’invalider le contrôle.

Votre question a déjà reçu une réponse, mais si vous avez besoin de bonnes performances et de moins de scintillement, appelez plutôt Invalidate. Il permet à Windows d’optimiser le processus de peinture.

Invalider – repeindre complètement le contrôle.

Utilisez Invalider lorsque tout le contrôle doit être repeint. Lorsque plusieurs régions du contrôle doivent être repeintes, Invalidate provoque la repeinte de la fenêtre entière en un seul passage, évitant le scintillement provoqué par des repeints redondants. Il n’y a pas de pénalité de performance pour l’appel Invalider plusieurs fois avant que le contrôle ne soit réellement repeint.

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

Invalidate “Invalidate informe un contrôle que toute sa surface doit être repeinte. Call Invalidate peut empêcher le scintillement provoqué par une série de repaints partiels. Il n’y a pas de pénalité de performance pour appeler Invalidate plusieurs fois avant que le contrôle soit réellement repeint”.

La repeinte proprement dite ne se produit pas tant que le contrôle n’a pas été mis à jour. Pour forcer une repeinte immédiate, appelez plutôt Repaint.

Repeindre “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 nouvelle référence que j’ai (CBuilder 2007).