csandrine
Messages postés8Date d'inscriptionlundi 18 mars 2002StatutMembreDernière intervention 2 juin 2002
-
2 juin 2002 à 19:29
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 2013
-
2 juin 2002 à 23:08
Je voudrais utiliser les classes pour insérer, modifier, supprimer et afficher les membres d'un carnet d'adresse.
J'ai une classe element dont dérivent les classes ami et entreprise.
J'ai définit ma classe personne:
type
personne=class
protected
numpers : integer;
cnom, cadresse, vcodepostal, cville, cteldom, cportable, cemail, vcommentaire : string;
public
constructor Create;
end;
cs_Nono40
Messages postés962Date d'inscriptionmercredi 3 avril 2002StatutMembreDernière intervention12 septembre 20062 2 juin 2002 à 21:37
Il faudrait savoir si tu veux créer une classe ou juste un enregistrement.
Dans le cas d'une classe.
La définition est faite comme tu le fais. Et je suppose que "varpers" est du type "Personne".
Dans le cas d'un enregistrement la déclaration serait du type :
Type
Personne=Record
numpers : integer;
cnom, cadresse, vcodepostal, cville,cteldom,cportable, cemail, vcommentaire : string;
End;
"varpers" serait alors défini de la même manière :
Varpers:Personne;
Mais il y a une différence fondamentale entre les deux. En utilisant le type "class" la mémoire n'est pas définie. Donc un appel de VarPers.cnom provoque une erreur. Dans le cas du "Record" la mémoire utilisée par VarPers est réservée donc VarPers.cnom ne provoque pas d'erreur.
Pour ne pas créer d'erreur avec le type "Class" il faut réserver la mémoire avant toute chose :
VarPers:=Personne.Create;
Ensuite les valeurs peuvent être utilisées. Et il ne faut pas non plus oublier de librérer la mémoire quand le Varpers n'est plus utile :
VarPers.Free;
Je ne peut te dire lequel est le mieux pour ton appli car ça dépend de l'utilisation de VarPers. Mais si c'est juste une variable contenant un enregistrement pour un ajout à Tbpers, alors utilise le style "Record", c'est beaucoup plus simple à mettre en oeuvre.
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 2 juin 2002 à 23:08
Nono40 a absolument raison : il faut savoir ce que l'on veut.
Tu peux créer un objet métier en déclarant une classe. Mais si tu déclares les variables tu ne pourras pas y accéder à partir d'autres unités.
Secundo, une classe doit posséder des méthodes pour accèder aux champs car les autres n'ont pas à connaitre le fonctionnement intime de ta classe et c'est beaucoup plus sécurisé pour tes données stockées.
Vu le style d'écriture utilisé, je pense que tu devrais te pencher sur la création de composants pour bien comprendre la mécanique. Une fois que tu auras assimilé celà, tu verras que c'est facile à utiliser. Cet un petit investissement à faire, mais qui vaut le coût, crois-moi.
Fais des recherches sur "delphi Objet métier" ou "delphi business objects".
Si tu es pressé, alors emploies des types record.
PS : je te recommande le site de Frédéric BEAULIEU. Il y parle de la création d'objets métier (une dizaine de pages à lire).
C'est très bien fait.