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

 


Dernière réponse
Sujet : [DELPHI] constructor et self ?
Clarkent je maitrive pas encore, mais je comprend dejamieux :), merci beaucoup :).

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Clarkent je maitrive pas encore, mais je comprend dejamieux :), merci beaucoup :).
BENB Je ne connais pas Delphi et mon Turbo Pascal est bien loin...
 
Tu as toujours interet a faire un constructeur pour initialiser ton objet.
 
Ta construction ressemble a un pattern notifier.
Le principe est le suivant.
Un objet de base Notifier comporte une methode UpDate(Sender *)
Un objet Sender comporte une methode AddNotifier(Notifier *) et une methode RemoveNotifier(Notifier*).
 
Tu surcharge l'objet Notifier pour faire faire ce que tu veux a la methode UpDate. Ensuite  tu enregistre ton Notifier dans le Sender (-> AddNotifier(Self)) qui ajoute ce Notifier a sa liste.
Chaque fois que le Sender est modifie il appelle les methode UpDate de chacun des Notifier en signant l'appel (UpDate(Self))
Lorsque tu ne souhaite plus etre informe des modifs tu desenregistre le Notifier (RemoveNotifier).
 
Le but est de decoupler un objet de sa representation graphique. Imagine un objet compteur, chque fois que sa valeur change il update ses Notifier qui sont en fait ses representation graphiques.
 
Dans ton cas il semble que se soit inverse...
antp constructor create (AOwner:Tcomponent);override;
-> tu "écrases" le constructeur de TLabel pour un faire un pour ta nouvelle classe. Je crois que tu es toujours obligé de le faire (j'en mets toujours un :D).
 
procedure FormCreate(Sender: TObject);
-> Sender c'est l'objet qui envoie l'événement ou un truc du genre
Clarkent j ai pas tout compris, niveauprogrammation objet je maitrise pas encore :), mais je vois un peu.
 
dans ce code:
  TTlabel = class (TLabel)
  public
  constructor create (AOwner:Tcomponent);override;
  procedure deplacer(Sender,source:TObject;X,Y:Integer;
      State:TDragState;var Accept:Boolean);
  procedure deposer(Sender,source:TObject;X,Y:Integer);
  end;
 
vous comprenez quoi ?
a part que TTLabel herite de toute les propiete de TLabel, il y a le constructor et le je vois pas trop pourquoi ?
ca serait juste parce que c est un nouvel objet ?
 
et une autre question:
 
type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    function ligne_case_noire (tableau:array [1..4,1..4] of TTlabel):integer;
  private
    { Déclarations privées}
  public
    { Déclarations publiques}
  end;
 
je comprend pas vraiment tout ca, en fait c est surtout l objet sender, je vois pas ce qui fou la, enfin si je crois que c est juste l evenement on envoi un objet sender pour que l evenement s execute non ? je suis un peu paume :D.
 
sinon tout ca ca sort d un jeu de pousse pousse, que je programme avec un pote et avec notre gentil prof qui a pas ete capable de m expliquer pourquoi on tape certain truc :D.
 
sinon prochaine etape jevais matter les bouquin :D.
 
merci :).
BENB Oops pardon...
Self n'a rien a voir avec l'heritage. Mais dans le cas d'un methode de l'objet de base appelle sur un autre plus evolue, Self sera du type de l'objet de base, mais pointera sur l'objet reel.
 
Je dis que ca n'a rien a voir parce que on peut faire des systeme d'heritage sans, et on peut les utiliser sans heritage...
BENB Le constructeur permet d'initialiser ton objet, peu importe qu'il y ai ou pas d'heritage, Simplement s'il y a heritage les constructeurs sont appelles dans l'ordre de l'heritage.
 
Self c'est une reference a l'objet, qui permet de resoudre les ambiguites, si par exemple une variable locale porte le meme nom qu'une globale ( ce qui est une faute a mon avis), mais surtout qui permet de "signer" les appels de ton objet :
tu passe Self en parametre a l'appeleant (par reference bien sur) et l'appelant peut rappeler ton objet pour obtenir d'autres elements...
antp self c'est l'objet lui même. Comme this en C++.
Pour le constructeur, c'est la méthode qui est appelée quand tu crées l'objet.
Clarkent voila, je n ai pas du tout compris a quoi pouvait bien servir c est de element, constructor et la methode self ( les deux sont independant ), constructor a un rapport avec l heritage ? ou peut etre self ? enfin si quelqu un pouvait etre clair sur ses points self et contructor ca serait sympa merci :).

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)