Différences
Ci-dessous, les différences entre deux révisions de la page.
| Prochaine révision | Révision précédente | ||
|
prog:lazarus:bonnes_pratiques [05/05/2020 10:12] thierry créée |
prog:lazarus:bonnes_pratiques [15/06/2023 11:43] (Version actuelle) thierry [Property Published de Type Object doivent être assignées] |
||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| ====== Les Bonnes pratiques en Pascal Object ====== | ====== Les Bonnes pratiques en Pascal Object ====== | ||
| ===== Événements ===== | ===== Événements ===== | ||
| + | ==== OnXXX doit etre géré par DoXXX ==== | ||
| + | |||
| Prendre soin de toujours accompagner un événement (OnXXXX) par sa procédure d'appel (DoXXXX).\\ Par exemple l'evenement OnChange doit etre géré dans la procedure DoChange.\\ | Prendre soin de toujours accompagner un événement (OnXXXX) par sa procédure d'appel (DoXXXX).\\ Par exemple l'evenement OnChange doit etre géré dans la procedure DoChange.\\ | ||
| - | La Procédure DoXXX doit etre dans la section ''protected'' et déclarée comme ''virtual'' pour permettre aux descendants de l'ignorer et d'intercepter les appels. | + | La Procédure DoXXX doit etre dans la section ''protected'' et déclarée comme ''virtual'' pour permettre aux descendants de l'ignorer et d'intercepter les appels en la surchargeant. |
| + | ==== Property Published de Type Object doivent être assignées ==== | ||
| + | Concerne la création de component :\\ | ||
| + | Quand une ''Property Published'' est un objet.\\ | ||
| + | On doit l'assigner avec un ''SetXXX'' et ''OBJECT.Assign''.\\ | ||
| + | Sinon il ne sera pas initialiser pas le système lors de la création du component. | ||
| + | <code delphi> | ||
| + | published | ||
| + | property Margin: TMarginObject read FMargin write SetMargin; // BIEN ! | ||
| + | property Margin: TMarginObject read FMargin write FMargin; // PAS BIEN ! | ||
| + | |||
| + | // Avec: | ||
| + | procedure TMonObjet.SetMargin(AValue: TMarginObject); | ||
| + | begin | ||
| + | FMargin.Assign(AValue); | ||
| + | end; | ||
| + | </code> | ||
| + | ===== Calculs ===== | ||
| + | ==== Division ==== | ||
| + | Si le diviseur est une variable, toujours vérifier si le diviseur n'est pas ZERO avant d'effectuer la division. | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ===== Ressources ===== | ||
| + | * [[https://edn.embarcadero.com/article/10280|Object Pascal Style Guide @Embarcadero]] | ||
| + | * [[https://www.riff.org/node/11897|Notation Hongroise]] | ||
| + | * [[https://www.developpez.net/forums/blogs/360691-retwas/b2050/bonnes-pratiques-delphi/]] | ||