Vue locale (langage)
De Wiki1000
(Différences entre les versions)
Ligne 62 : | Ligne 62 : | ||
[[Category:langage]] | [[Category:langage]] | ||
+ | [[Category:Vue de classe]] | ||
[[Category:Tahoe]] | [[Category:Tahoe]] |
Version du 2 septembre 2011 à 08:34
Les vues locales sont des type de données vues déclarées localement à l'intérieur d'une opération.
Par exemple le code suivant déclare une vue MyView et effectue une recherche sur cette vue :
function foo(const S:string):Integer; Type MyView = viewof(ClassA) unCode:string = unCodeA; unEntier:Integer = refB.unEntierB; end; var inst:MyView; begin inst := MyView.Find('unCode=%1','',true,['B1']); if Assigned(inst) then begin ... end; end
Le périmètre du type est limité à la procédure, il n'est donc pas possible de passer les objets de la vue en paramètre à d'autres fonctions (pour cela utilisez une vue globale).
La syntaxe pour définir une vue locale :
Type NomDeVue = ViewOf(NomDeClassePrincipale) Attribut : Type; Attribut : Type = AliasDe; end;
Les vues peuvent utiles pour effectuer des traitement sur des classes complexes, par exemple il est possible d'utiliser un curseur sur une classe vue :
function foo(const S:string):Integer; Type MyView = viewof(ClassA) newCode:string; unCode:string = unCodeA; unEntier:Integer = refB.unEntierB; end; var inst:MyView; cursor:MyViewCursor begin Result := 0; cursor := MyView.CreateCursorWhere(''unCode=%1'','''',true,[S]); foreach inst in cursor do begin Result := Result + inst.unEntier; end; end;
Voir aussi :