J'ai appris Delphi au cours des 3 dernières années, à un niveau de passe-temps / professionnel. Je suis heureux de dire que j'ai maintenant progressé au point de pouvoir regarder en arrière mon code du début avec horreur et gêne. Je suis donc en train de passer en revue certaines de mes premières applications et de les réécrire/les refactoriser.
Une des mauvaises habitudes que j'essaie d'abandonner est d'accéder à des composants sur une forme depuis une autre unité. Dans un effort pour imposer cela, j'ai expérimenté l'utilisation de cadres comme méthode de dissimulation d'informations. Donc au lieu d'avoir une forme avec des composants dessus, je crée un cadre pour contenir tous les composants de la forme, puis place le cadre sur une forme, déplace la déclaration du cadre dans les déclarations privées,
type
TMyForm = class(TForm)
private
MyFrame: TMyFrame;
procédure SetTimeDate(const Value: TMyItem);
fonction ReadTimeDate:TMyItem ;
ensuite enregistre le cadre dans la section d'initialisation de la forme
initialization
begin
RegisterClasses([TMyFrame])
Je déclare ensuite les propriétés dont j'ai besoin dans la section publique de l'unité de forme, qui a accès au cadre et à ses composants.
public
propriété TimeDate: TMyItem lire ReadTimeDate écrire SetTimeDate;
J'utilise également des cadres pour consolider des groupes de composants souvent répétés.
Cela semble fonctionner pour les objectifs que je veux atteindre (cacher Myframe et ses composants), mais est-ce que quelqu'un d'autre a de l'expérience avec cette méthode?
Y a-t-il des inconvénients à utiliser des cadres? Est-ce que j'obtiens réellement un avantage en faisant cela? Y a-t-il des problèmes à utiliser des cadres imbriqués dans des cadres? Y a-t-il des guides de bonnes pratiques pour utiliser des cadres en Delphi? Y a-t-il de meilleures/façons plus faciles d'atteindre le même effet en ce qui concerne la dissimulation d'informations GUI en Delphi?
HMcG