Conception de composant; initialisation des propriétés

Conception de composant; initialisation des propriétés - Delphi/Pascal - Programmation

Marsh Posté le 04-10-2006 à 11:02:19    

Je débute un peu dans la conception de composant sous Delphi... et je rame grave  [:alph-one]  
 
Pour les besoins d'une apli, je crée 2 composants perso.
 
Le premier est un composant non-visuel nommé TZZInfoSession contenant les information sur la session. Parmi ses propriété, se trouve la connexion à la base de donnée (TADOConection).
 
Le second (nommé TZZChamp) est un composant visuel. Une de ses propriétés est l'objet décrivant la session de type TZZInfoSession.
 

type
  TZZInfoSession = class(TComponent)
    private
      FConnexion : TADOConnection;
    protected
      Procedure SetConnexion (Connex : TADOConnection);
    published
      property Connexion : TADOConnection read FConnexion write SetConnexion;
  end;
 
  TZZChamp = class(TPanel)
    private
      FZZInfoSession      : TZZInfoSession;
    protected
      Procedure SetInfoSession(Info : TZZInfoSession);
    published
      property InfoSession:TZZInfoSession read FZZInfoSession write SetInfoSession;
  end;


Quant je suis dans la conception d'une fiche, tout baigne. T pose un TADOConnection sur ma fiche. Quand je défini la propriété Connexion de mon TZZInfoSession, ça rentre bien dans le code de la procedure "SetConnexion" et quand je défini la propriété InfoSession de mon TZZChamp, ça rentre bien dans le code de la procedure SetInfoSession.
 
Par contre, à l'exécution, je ne maitrise plus l'ordre d'initialisation des composants. La procedure TZZChamp.SetInfoSession s'exécute la première, et l'objet TZZInfoSession n'est donc pas initialisé à ce moment (la connection n'est pas affecté).
 
Quelqu'un peut-il m'indiquer la marche à suivre? Y a-t-il un moyen de forcer l'execution de TZZChamp.SetInfoSession lorsque l'objet InfoSession est mis à jour?


Message édité par el zozo le 04-10-2006 à 11:19:19
Reply

Marsh Posté le 04-10-2006 à 11:02:19   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed