cs_cricri_forever
Messages postés49Date d'inscriptionmercredi 28 septembre 2005StatutMembreDernière intervention31 mars 2006
-
23 févr. 2006 à 16:40
mustaph_a
Messages postés20Date d'inscriptionmardi 30 août 2005StatutMembreDernière intervention 8 mai 2010
-
19 août 2007 à 15:29
Bonjour,
Quelq'un pourrait m'expliquer les concepts de record, dobject et de class en Delphi. Quelle est la différence entre ces concepts
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202237 23 févr. 2006 à 18:57
un record est un type qui permet de stocker plusieurs valeur sans avoir besoin de methodes, de le creer ou de le detruire, il ne posede pas non plus de zone publique ou privée ou protégée ou publiée et il ne possede pas non plus de notion d'heritage comme dans les classes ou object.
On ne peu pas mettre de methode dans un type record. Les methodes seront donc externe au type créé.
certain type d'origine de delphi sont des type record (enregistrement), comme TPoint, TRect ect...
pour l'ecrire il suffit de faire :
type
TPoint = record
X,Y : integer;
end;
pour l'utiliser il suffit de faire :
var
mavariable : TPoint;
begin
mavariable.x;
mavariable.y;
end;
<hr size="2" width="100%">
Le type object viens directement du Pascal (a l'epoque ou il n'etait pas encore orientée objet (POO))
le Type objet ressemble beaucoup au type record, il ne possede pas non plus de notion d'heritage, de zone privée, publique ect...
La seule difference qu'il a avec le type record c'est qu'il peut contenir des methodes propre a lui.
Le type object peut encore etre utiliser dans delphi mais il est conseillé d'utiliser plutot la classe TObject qui fournis du code plus propre, plus complet et egalement tout les avantages des Objets (heritage ect...)
exemple de declaration :
Type
TRectObject = object
Rect : TRect;
function width : integer;
function height : integer;
procedure SetRect(Left,Right,Top,Bottom : integer);
end;
exemple d'utilisation :
var TRO : TrectObject;
begin
TRO.SetRect(10,20,10,100);
Button.width := TRO.width;
Button.height := TRO.Height;
end;
<hr size="2" width="100%">
Les classe ! haaaaaa! pure POO, heritage tout azimut, zone protégée, publique, privée, publiée, destructeur, constructeur bref toute la puissance de la programmation orientée objet.
Les classe sont un peu plus dur a mettre en place que les record.
Il existent des milliers voir des millions de classes dans delphi. Autant oui, car une classe peut etre derivée, heritée, customisée, bridée, ameliorée ect... ect...
A retenir surtout les classes de base comme TObject, TComponent, TControl, TWinControl ect...
Les classes fournisse un puissant support pour definir des objets du plus simple au plus complexe.
Grace aux zone privée, protégée, publiée et publique; on vas pourvoir cacher des methodes ou des propriétées ou au contraire les diffuser a l'utilisateur.
Bizarement, les gens on peur des classes mais pourtant ils les utilisent tout le temps en programmant dans Delphi.
Tu crée une fiche ?
pouf ... tu as une classe TForm qui apparait et que tu modifie sans meme te rendre compte que tu crée une classe qui pourras etre derivée, heritée ect...
Tu mets un composants sur ta fiche ?
pouf ... encore d'autre classes pouvant etre heritée, derivée ect...
exemple de declaration d'une classe :
type
TMaClasse = class(classe de base heritée)
private
... declarations privées (variables/methodes interne)
protected
... declarations protégées (propriétées/methodes heritées a protéger)
published
... declarations publiées (propriétées/methodes heritées a publier; constructeur, destructeur)
public
... declarations publique (propriétées/methodes publique)
end;
<hr size="2" width="100%">
ou ? quand ? comment ?
on utilise le type record pour definir un type qui ne contient que des valeurs et dont l'heritage et les methodes importe peu. ou quand l'on desir garder les methodes de traitement en externe. On l'utiliseras donc souvent pour creer des petits "paquets" de variable necessaire a la bonne hierarchisation et ecriture du code.
on utilise le type object pour definir un objet trés simple dont l'heritage, la creation et destruction importe peu, mais ou l'on veux pouvoir garder les methodes en interne. On l'utiliseras seulement dans des cas rare et trés precis car la forte orientation objet (vers les classes) de delphi le rend quelque peu obsolete et inutile.
on utilise les classes pour definir des objets simple ou complexe mais dont la gestion serat relativement importante, pouvant etre derivés et herités et donc reutilisable a souhait dans d'autre programmes. On les utiliseras courrament pour se faciliter la grandement la vie dans l'ecriture de nos programme et egalement pour créer ses propre composant visuels ou runtime.
<hr size="2" width="100%">
voila j'espere ne pas m'etre tromper et que ça t'aideras.
<hr size="2" width="100%">La theorie c'est quand on sait tout, mais que rien ne fonctionne.
La pratique c'est quand tout fonctionne, mais que personne ne sait pourquoi.
<hr>
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 23 févr. 2006 à 20:01
"La theorie c'est quand on sait tout, mais que rien ne fonctionne."
Heureusement qu'on ne sait pas tout !
Bravo à foxi pour cette leçon de chose.
<HR color=#008000>
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202237 25 févr. 2006 à 01:29
hoho, je ne merite pas autant d'eloges ... moi aussi j'ai mis trés longtemps a comprendre la difference entre les 3 choses et a comprendre egalement les notions fondamentale de la POO ...
j'avourais meme que, meme si mon explication semble parfaite (modestement hein), je n'ai fais que dire que l'eau est froide parce qu'on a oublier de la faire chauffer ...
c'est un sujet qui meriterais a lui seul de nombreuse page de site web. et ma trés trés mince introduction a ce sujet necessiterais des aproffondissement sur beaucoup de points.
Je conseillerais meme d'ailleurs de ne pas vous arretez a ma trés simpliste et breve explication.
et je voudrais aussi annoter un point important sur une phrase que j'ai dis plus haut :
Ou, Quand, Comment, Pourquoi ?
voila la vrai question a se poser et il faut beaucoup de temps et de travail pour savoir y repondre.
donner une definition c'est simple ... la comprendre completement est une autre affaire.
donc ... ne vous en contentez pas.
deux liens utile pour comprendre le principe de POO
<hr size="2" width="100%">La theorie c'est quand on sait tout, mais que rien ne fonctionne.
La pratique c'est quand tout fonctionne, mais que personne ne sait pourquoi.
<hr>