C'est un héritage manuel, sans passer par Delphi (pas de DFM en inherited)
J'ai dans l'application que je maintiens, ce code (simplifié et censuré), je précise, c'est un Form SANS DFM dans une simple unit, comme si je déclarais une classe quelconque ... c'est vrai, j'aurais pu faire deux objets, la fenêtre (vue) et un controleur (via implementation d'interface au lieu de virtual abstract), mais bon ...
Derrière j'ai une Factory qui en fonction de paramètre va me créer une Form Héritée (celle-ci ont chacune une DFM), le type de classe est déterminée à l'execution ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 TSaisieForm = class(TForm) published lblPatientInfo: TLabel; protected FIdentifiant: string; function GetPatientInfo: string; public constructor Create(const AIdentifiant: string); reintroduce; function GetValue(const ValueName: string): Variant; virtual; abstract; class function CanShow(): Boolean; virtual; abstract; end; TSaisieFormClass = class of TSaisieForm ;
J'ai du bidouillé en vitesse, ce matin, un affichage, comme je ne voulais pas dupliquer le code d'affichage (remplissage d'un label tout le temps le même), j'ai donc déclaré ce lblPatientInfo alors qu'il n'y a pas de DFM dans la classe de base.
Puis dans les classes héritées, j'ai mis le lblPatientInfo dans la DFM mais je l'ai retiré du code puisque déjà présent dans l'ancêtre ... bon vous voyez ...
Je voudrais savoir ce que vous en pensez ... et les risques ...
Partager