Listes d'objets (tech)
Sommaire |
Introduction
Utilisez un TObjectList pour manipuler une liste d'objets. TObjectList fournit des propriétés et méthodes pour ajouter, supprimer, réorganiser, trouver, trier et accéder aux objets contenus dans la liste.
Une liste d'objet charge ses objets en une seule requête et les conservent en mémoire. Ce fonctionnement à des avantages et des incovénients :
- Une fois l'ordre de chargement exécuté il ni a plus d'interactions base de données.
- Les objets sont maintenus en mémoire se qui interdit le traitement de grande quantité d'objet.
Déclaration d'une variable liste d'objet
Les listes d'objets doivent être déclarée avant d'être utilisées, lorsque la classe de la liste est connue au moment de la déclaration la forme préfixé du nom de la classe métier peut être utilisée :
var ls:NomDeClassList;
Cette forme de déclaration permet au compilateur de connaitre la classe des objets de la liste.
Création d'une liste d'objet
Utilisation du ClassManager
Le ClassManager expose une fonction pour créer des listes d'objets d'une classe donnée :
function CreateObjectList(const iClassName :string) :TObjectList;
iClassName représente le nom de la classe des objets contenus dans la liste.
Exemple
var ls:TEcritureList; begin ls := ClassManager.CreateObjectList('TEcriture'); end;
Utilisation du constructeur de liste d'une classe métier
Les classes métiers exposent un constructeur de liste permettant de créer une liste d'objet de la classe :
class function TObjectClass.CreateList:TObjectClassList;
Exemple
var ls:TEcritureList; begin ls := TEcriture.CreateList; end;
Note : Les deux formes de code sont équivalentes, la seconde est plus claire et évite les erreurs de frappe du nom des classes |
Propriétés
Nom | Usage |
---|---|
aClassName | Nom de la classe des objets contenu dans la liste. |
Count | Renvoie le nombre d'objets dans la liste. |
OIDs [index] | Accède aux identifiants des objets de la liste. |
Refs [index] (itérateur) | Accède aux instances des objets de la liste. |
OrderValues [index] | Accède aux valeurs de tri des objets de la liste. |
OrderBy | Indique l'attribut triant la liste |
Duplicates | Indique le comportement de la liste sur doublon. |
AnyWhere | Indique de ne pas filter les objets sur les périmètres de partage. |
Méthodes
IndexOf | Renvoie la position d'un objet identifié par son identifiant. |
IndexByOrder | Renvoie la position d'un objet identifié par sa valeur de tri. |
AddOID | Ajoute un objet dans la liste. |
AddRef | Ajoute un objet dans la liste. |
Insert | Insère un objet dans la liste. |
RemoveOID | Supprime un objet de la liste par son identifiant. |
RemoveRef | Supprime un objet de la liste par son instance. |
Delete | Supprime un élément de la liste par son index. |
Assign | Affecte la liste avec les objets d'une autre liste. |
Clear | Vide la liste. |
ReleaseInstances | Libère les références tenues par la liste. |
AddWhere | Ajoute dans la liste les objets vérifiant la condition iWhere. |
RemoveWhere | Supprime les objets de la liste pour lesquels la condition iWhere est satisfaite. |
CountWhere | Renvoie le nombre des objets de la liste pour lesquels la condition iWhere est satisfaite. |
FindFirst | Recherche le premier objet vérifiant la condition iWhere. |
FindNext | Recherche l'objet suivant iIndex vérifiant la condition iWhere. |
Intersect | Conserve les objets qui sont présents dans les deux listes et dont l'évaluation de la condition donne le même résultat. |
Merge | Ajoute les objets de la liste passé en paramètre qui ne sont pas déjà présent et qui vérifie la condition. |
DeleteObjects | Supprime les objets de la liste. |
ToString | Retourne un attribut sérialisé sous forme chaîne. |
— Code métier — Développement DSM —