Conception de composant; initialisation des propriétés
Conception de composant; initialisation des propriétés - Delphi/Pascal - Programmation
MarshPosté le 04-10-2006 à 11:02:19
Je débute un peu dans la conception de composant sous Delphi... et je rame grave
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.
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
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
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