TStaticText = class (StdCtrls.TStaticText) private FActive: boolean; published property Active: boolean read FActive write FActive default False; end; Il te suffit d'insérer cette déclaration juste avant celle de la fiche qui utilise le composant. Ainsi, le remplacement sera effectué automatiquement par cette nouvelle déclaration. Extrait d'une unité contenant une fiche : <!--StartFragment--><CODE>type TStaticText = class(StdCtrls.TStaticText) private FActive: boolean; published property Active: boolean read FActive write FActive default False; end; TForm1 = class(TForm) Button1: TButton; Edit1: TEdit; Label1: TLabel; Button2: TButton; StaticText1: TStaticText; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Déclarations privées } public { Déclarations publiques } end;
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question<code>type TStaticText = class (StdCtrls.TStaticText) private FActive: Boolean; procedure SetActive(Value: Boolean); published property Active: boolean read FActive write SetActive default False; end; TForm1 = class(TForm) Button1: TButton; Edit1: TEdit; Label1: TLabel; Button2: TButton; StaticText1: TStaticText; private { Déclarations privées } public { Déclarations publiques } end;
Procedure StaticText1.SetActive(Value: Boolean); begin if Factive=Value then exit; // pour eviter de mettre "true" quand c deja "true" (idem avec false bien sur) FActive := Value; if FActive then // code si actif else // code si non actif end; { du begin } ... end. je viens de faire de tete mais je pense ne pas avoir fait d'erreurs (apres 5 relectures ...). Comme tu le comprends, a chaque chagement d'etat de ton StaticText, la procedure SetActive est executée. Si tu as plusieurs statictext... je pense qu'il faudrait declarer la procedure en PUBLIC et non PRIVATE, je pense :p ET comme le dit DelphiProg, tu peux toujours t'en remettre a la méthode classique de modif le compo pour faire le tiens a partir d'un TStaticText. Voila ! a+