Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1853 connectés 

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  Propriétés de classes

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Propriétés de classes

n°495690
Yana
Posté le 24-08-2003 à 12:14:20  profilanswer
 

Salut !
 
Je me pose une question depuis un bout de temps alors je me décide maintenant de demander la réponse en public ^^
 
A quoi servent les "property Prop: TClasse READ GetProp WRITE SetProp" ?
Je ne comprends pas trop bien l'utilité des READ et WRITE...
 
J'ai fais ceci :
 

Code :
  1. unit Unit1;
  2. interface
  3. uses
  4.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  5.   Dialogs, StdCtrls;
  6. type
  7.   TForm1 = class(TForm)
  8.     Button1: TButton;
  9.   end;
  10.   TClass = class
  11.     procedure SetProp(Valeur: TColor);
  12.     function GetProp: TColor;
  13.   published
  14.     property Couleur: TColor read GetProp write SetProp;
  15.   end;
  16. var
  17.   Form1: TForm1;
  18. implementation
  19. {$R *.dfm}
  20. procedure TClass.SetProp(Valeur: TColor);
  21. begin
  22.   if Couleur <> Valeur then Couleur := Valeur;
  23. end;
  24. function TClass.GetProp: TColor;
  25. begin
  26.   Result := Couleur;
  27. end;
  28. end.


 
Mais pourquoi ne pas avoir défini qqch du style :

Code :
  1. TClass = class
  2.     Couleur: TColor;
  3.   end;


 
On aurait ainsi pu atteindre la propriété Couleur et changer librement sa valeur sans passer par deux fonctions/procédures  :??:  
 
 
Merci de m'éclairer ;)


Message édité par Yana le 24-08-2003 à 12:15:03
mood
Publicité
Posté le 24-08-2003 à 12:14:20  profilanswer
 

n°495692
*syl*
--&gt; []
Posté le 24-08-2003 à 12:21:18  profilanswer
 

Ça n'aurait pas été visible dans l'inspecteur d'objet (d'où le property)

n°495699
Yana
Posté le 24-08-2003 à 12:33:17  profilanswer
 

Ce n'est pas une propriété d'un composant visuel...

n°495703
antp
Super Administrateur
Champion des excuses bidons
Posté le 24-08-2003 à 12:36:30  profilanswer
 

Pour que quand tu fasse bidule.Couleur := clBlue; ça ne fasse pas que bêtement assigner la valeur, ça passe par un SetColor qui peut faire des tests (ici tester que la valeur est différente).
Dans ce cas-ci c'est pas très utile, mais dans le set on pourrait par ex recolorier l'objet quand on change sa couleur. Or ça ne sert à rien de le recolorier si la nouvelle couleur = l'ancienne. Donc on fait un test.  
Et pour l'utilisateur c'est transparent : il assigne une valeur sans devoir se soucier du traitement qui est fait derrière.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°495706
*syl*
--&gt; []
Posté le 24-08-2003 à 12:37:19  profilanswer
 

Yana a écrit :

Ce n'est pas une propriété d'un composant visuel...

Qu'est-ce que tu racontes toi ? :heink:  
T'es dans une section published !

n°495709
Yana
Posté le 24-08-2003 à 12:41:19  profilanswer
 

Bah dans l'inspecteur d'objet il n'y a rien qui s'affiche de nouveau, si ce n'est la feuille et le boutton1 ...

n°495713
antp
Super Administrateur
Champion des excuses bidons
Posté le 24-08-2003 à 13:01:49  profilanswer
 

*Syl* a écrit :

Qu'est-ce que tu racontes toi ? :heink:  
T'es dans une section published !


 
classe dérivant de TObject et pas de TComponent, donc pas un compo, le "published" ne fait rien de plus que le "public".
 
PS: Appeler une class TClass c'est un bon système pour avoir des crash étranges par après :D TClass est déjà utilisé pour désigner un type de classe.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°495720
Yana
Posté le 24-08-2003 à 13:07:11  profilanswer
 

je sais bien mais je ne savais pas quoi mettre alors bon, on va pas chinailler pour un test :D

n°495728
*syl*
--&gt; []
Posté le 24-08-2003 à 13:17:55  profilanswer
 

antp a écrit :

classe dérivant de TObject et pas de TComponent, donc pas un compo, le "published" ne fait rien de plus que le "public".

Ah wé, pas fait gaffe
[:neowen]


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  Propriétés de classes

 

Sujets relatifs
[poo] appeller une fct dune classes heriteeRecuperation des infos d un fichier (-> Propriétés / onglet résumé )
[Eclipse] Supprimer des associations entre classes Java ? [résolu]Je viens de debuter les classes , qq questions :
Récupération dynamique des propriétés de style[C++ / VC++] Gros probleme de déclaration de classes :(
[C++] faire un vector de classes héritéesheriter des propriétés d'une classe par rapport a une autre classe
les classes : important ??[Access 2002] C possible de créer des propriétés "maison"?
Plus de sujets relatifs à : Propriétés de classes


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR