Record Class [Résolu]

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

Votre réponse

7 réponses

Meilleure réponse
Messages postés
4304
Date d'inscription
samedi 16 octobre 2004
Dernière intervention
9 mars 2018
23 févr. 2006 à 18:57
3
Merci
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>

Merci f0xi 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Commenter la réponse de f0xi
Messages postés
4580
Date d'inscription
samedi 19 janvier 2002
Dernière intervention
9 janvier 2013
23 févr. 2006 à 20:01
0
Merci
"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
Messages postés
1529
Date d'inscription
samedi 12 juin 2004
Dernière intervention
5 juillet 2010
24 févr. 2006 à 00:20
0
Merci
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
Messages postés
1201
Date d'inscription
mercredi 2 novembre 2005
Dernière intervention
10 septembre 2011
24 févr. 2006 à 11:56
0
Merci
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
Messages postés
4304
Date d'inscription
samedi 16 octobre 2004
Dernière intervention
9 mars 2018
25 févr. 2006 à 01:29
0
Merci
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
Messages postés
4580
Date d'inscription
samedi 19 janvier 2002
Dernière intervention
9 janvier 2013
4 mars 2006 à 23:33
0
Merci
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
Messages postés
20
Date d'inscription
mardi 30 août 2005
Dernière intervention
8 mai 2010
19 août 2007 à 15:29
0
Merci
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.