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

  FORUM HardWare.fr
  Programmation

  [DELPHI] constructor et self ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[DELPHI] constructor et self ?

n°20393
Clarkent
Musclor le shérif de l'espace
Posté le 26-03-2001 à 07:53:25  profilanswer
 

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 :).


---------------
"PAR LE POUVOIR DU CRÂNE ANCESTRAL, JE DETIENS LA FORCE TOUTE PUISSANTE".
mood
Publicité
Posté le 26-03-2001 à 07:53:25  profilanswer
 

n°20405
antp
Super Administrateur
Champion des excuses bidons
Posté le 26-03-2001 à 09:29:44  profilanswer
 

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.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°20478
BENB
100% Lux.
Posté le 26-03-2001 à 14:56:53  profilanswer
 

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...

n°20482
BENB
100% Lux.
Posté le 26-03-2001 à 15:02:57  profilanswer
 

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...

n°20569
Clarkent
Musclor le shérif de l'espace
Posté le 26-03-2001 à 18:54:13  profilanswer
 

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 :).


---------------
"PAR LE POUVOIR DU CRÂNE ANCESTRAL, JE DETIENS LA FORCE TOUTE PUISSANTE".
n°20650
antp
Super Administrateur
Champion des excuses bidons
Posté le 27-03-2001 à 09:37:48  profilanswer
 

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


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°20665
BENB
100% Lux.
Posté le 27-03-2001 à 10:33:29  profilanswer
 

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...

n°20830
Clarkent
Musclor le shérif de l'espace
Posté le 27-03-2001 à 20:29:03  profilanswer
 

je maitrive pas encore, mais je comprend dejamieux :), merci beaucoup :).


---------------
"PAR LE POUVOIR DU CRÂNE ANCESTRAL, JE DETIENS LA FORCE TOUTE PUISSANTE".

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

  [DELPHI] constructor et self ?

 

Sujets relatifs
Gérer la vitesse d'un moteur en utilisant la méthode PWM sous Delphi!JEU FAIT EN DELPHI, ou en trouver :D.
Programmation sous DelphiQqun a-t-il de la doc sur DelphiX (le composant de delphi 4) ??
probleme avec la combobox sous delphi ...Récupérer la résolution de l'écran avec Delphi
VB vs DelphiTUTORIEL DELPHI 5 ???
[Delphi] - Question d'héritage (pour les pros)cadre avec delphi
Plus de sujets relatifs à : [DELPHI] constructor et self ?


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