Record Class

Résolu
cs_cricri_forever Messages postés 49 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 31 mars 2006 - 23 févr. 2006 à 16:40
mustaph_a Messages postés 20 Date d'inscription mardi 30 août 2005 Statut Membre Dernière intervention 8 mai 2010 - 19 août 2007 à 15:29
Bonjour,


Quelq'un pourrait m'expliquer les concepts de record, d’object et de class en Delphi. Quelle est la différence entre ces concepts
A voir également:

7 réponses

f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
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>
3
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
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.
0
ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 12
24 févr. 2006 à 00:20
C'est une très bonne explication fOxi

@+
Nico { http://www.ni69.new.fr/ }

<hr size="2" width="100%">
N'oubliez pas de cliquer sur Réponse Acceptée lorsque la réponse vous convient !
0
Matt 261 Messages postés 1173 Date d'inscription mercredi 2 novembre 2005 Statut Membre Dernière intervention 10 septembre 2011 3
24 févr. 2006 à 11:56
Très bien expliqué f0xi...BRAVO. En plus grâce a toi j'aurai (enfin) compris. Merci aussià Cricri_forever d'avoir posé la question.

@+

Matt
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
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

http://www.commentcamarche.net/poo/poointro.php3
http://fr.wikipedia.org/wiki/Programmation_orient%C3%A9e_objet

<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>
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
4 mars 2006 à 23:33
Allons, allons, pas de fausse modestie et...


<HR color=#008000>
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
0
mustaph_a Messages postés 20 Date d'inscription mardi 30 août 2005 Statut Membre Dernière intervention 8 mai 2010
19 août 2007 à 15:29
Bonjour , Bravo FoXi vous ete un savon.
pour les gent qui maitriser POO sous delphi contacter moi sur mon Email : Etudiant_mail@yahoo.fr
0
Rejoignez-nous