Situation : on développe en se basant sur des composants achetés. Je me retrouve à devoir écrire une méthode permettant d'annuler les modifications de l'utilisateur appliquées sur des objets de ces composants.

Je me mets donc à explorer les méthodes fournies par ces composants. Oh, tiens, une méthode RevertAll, elle pourrait bien faire exactement ce que je souhaite. Regardons cela plus en détail... Ah bin non, j'avais oublié, il n'y a ni documentation ni aide avec ces composants... Bon, voyons dans le code... Et voilà, devant mes yeux horrifiés, ce que je découvre :

    procedure MyAwfulObject.RevertAll;
    begin
    end;

Donc c'est sûr, cela ne va pas m'être d'une grande utilité... Mais alors, pourquoi proposer une telle méthode, s'ils savent très bien qu'elle ne fait rien ? Mais c'est bien sûr : ils ont eux aussi achetés d'autres composants, et cette méthode est déclarée abstraite chez le père. Ils ont donc eu la flemme d'implémenter un comportement correct et ont choisi la solution facile.

Je me dis alors : pas de problème, je n'ai qu'à dériver de cette classe et implémenter moi-même le comportement idoine... Mais non, suis-je bête, comme toujours, tous les membres auxquels j'ai besoin d'accéder pour cela sont déclarés privés et sans aucun getter ou setter. Aaaaaarrrrrrghhhhh !

Voilà, j'en ai fini avec les geekeries. Vous pouvez reprendre une activité normale. Et ce blog va maintenant retourner à son habituelle léthargie.