Guillemouze
Messages postés991Date d'inscriptionsamedi 25 octobre 2003StatutMembreDernière intervention29 août 2013
-
14 nov. 2006 à 12:21
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 2013
-
15 nov. 2006 à 21:45
salut delphifriens, une question toute bete, est ce qu'il existe un equivalent de l'operateur is des classes pour les records.
on peut faire
if MonObjet is TObject
mais comment faire
if MonRecord is TMyRecord
ou
if PMonRecord is ^TMyRecord
je suis sur que delphiprog va me dire que je dois connaitre le type de mes records , et je les connai, c'est juste pour blinder un petit peu plus ma liberation memoire.
merci.
A voir également:
Org.postgresql.util.psqlexception: operation requires a scrollable resultset, but this resultset is forward_only.
cs_Loda
Messages postés814Date d'inscriptionvendredi 3 novembre 2000StatutMembreDernière intervention30 juillet 20093 15 nov. 2006 à 08:31
Je voix pas de cas ou un opérateur "is" m'aurait été utile pour une var de type record. vu que c'est des var et que les mécanisme de la POO ne s'applique aux records...... as-tu un exemple? C'est dans quel but?
des idées de pistes pour ce type de problème:
si t'as bcp de type de record différent que tu voudrais différencier, tu peux tous leur donné un champ avec un nom du genre RecordType dans le quelle tu sauve un integer que tu utilise comme identifiant.
C'est lourd (32 bits pour rien par record), moche et dangereux (car modifiable), mais ça marche.
Si ils ont des taille différentes, et si t'as peu de type différent, une autre solution serrait de comparer leur taille avec sizeof (j'ai comme un doute, je sais plus si cela marche aussi pour les var, je crois que oui, mais vérifie).
Sinon, peut-être que de compiler avec des pointeur typé te suffirait?..?..
Vous n’avez pas trouvé la réponse que vous recherchez ?
Guillemouze
Messages postés991Date d'inscriptionsamedi 25 octobre 2003StatutMembreDernière intervention29 août 20136 15 nov. 2006 à 09:10
merci des infos,
en fait je manipule un paquet de TList, et elles ne contiennent normalement qu'un seul type de record chacune.
le bloc en question est :
for i := 0 to MaTList.count -1 do
begin
if MaTList[i] is PTMonRecord then //je veux tester pour ne pas aller liberer un truc qui le devrait pas
PTMonRecord(MaTList[i])^.ChampObjet.Free;
end;
donc, si vous ne voyez pas de moyen de resoudre mon probleme, je vais tout simplement virer le test, etant donné qu'il n'y a aucune raison que le type ne soit pas celui que j'attend.
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 15 nov. 2006 à 21:45
Voila la conclusion que j'avais envie d'entendre .
En effet, dans un langage fortement typé comme le Pascal, on doit pouvoir se dispenser de tester trop souvent le type de données que l'on emploie.
Bonne continuation.
May Delphi be with you !
<hr color="#008000" />
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
http://www.afipa.net