Record Class [Résolu]

cs_cricri_forever 49 Messages postés mercredi 28 septembre 2005Date d'inscription 31 mars 2006 Dernière intervention - 23 févr. 2006 à 16:40 - Dernière réponse : mustaph_a 20 Messages postés mardi 30 août 2005Date d'inscription 8 mai 2010 Dernière intervention
- 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
Afficher la suite 

7 réponses

Répondre au sujet
f0xi 4304 Messages postés samedi 16 octobre 2004Date d'inscription 9 mars 2018 Dernière intervention - 23 févr. 2006 à 18:57
+3
Utile
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>
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de f0xi
cs_Delphiprog 4580 Messages postés samedi 19 janvier 2002Date d'inscription 9 janvier 2013 Dernière intervention - 23 févr. 2006 à 20:01
0
Utile
"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.
Commenter la réponse de cs_Delphiprog
ni69 1529 Messages postés samedi 12 juin 2004Date d'inscription 5 juillet 2010 Dernière intervention - 24 févr. 2006 à 00:20
0
Utile
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 !
Commenter la réponse de ni69
Matt 261 1201 Messages postés mercredi 2 novembre 2005Date d'inscription 10 septembre 2011 Dernière intervention - 24 févr. 2006 à 11:56
0
Utile
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
Commenter la réponse de Matt 261
f0xi 4304 Messages postés samedi 16 octobre 2004Date d'inscription 9 mars 2018 Dernière intervention - 25 févr. 2006 à 01:29
0
Utile
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>
Commenter la réponse de f0xi
cs_Delphiprog 4580 Messages postés samedi 19 janvier 2002Date d'inscription 9 janvier 2013 Dernière intervention - 4 mars 2006 à 23:33
0
Utile
Allons, allons, pas de fausse modestie et...


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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.