Manuel §2.42    

Tableau d ’objets

Sisal permet de définir des tableaux d ’objets, en particulier des tableaux d ’objets graphiques. Cela est particulièrement utile lorsque l ’on doit définir un ensemble cohérent d ’objets graphiques élémentaires auquel on souhaite accéder par une position. Pour cela il suffit dans la déclaration d ’objet de faire précéder le type d ’objet de la déclaration Array ( ou Row) précisée des dimensions maximales du tableau entre crochet.

NomDeTableauDObjet Array[ NbLigne] Of Type, AutresParamètres;

NomDeTableauDObjet Row[ NbColonne] Of Type, AutresParamètres;

NomDeTableauDObjet Array[ NbColonne, NbLigne] Of Type, AutresParamètres;

La première déclaration permet de définir un tableau vertical de NbLigne objets, la seconde permet de définir un tableau horizontal de NbColonne objets, et la dernière une matrice de NbColonne fois NbLigne objets.

Sisal va automatiquement définir autant d ’objets que précisé, chaque objet sera dimensionné et placé en fonction du nombre d ’objet et de la place déclarée.

Object
Clavier Array[ 3, 4] of Button, “?”, 100, 100, 300,  80,,,,;

...

On do begin
Clavier[0,0] .Text = “7”; Clavier[1, 0] .Text = “8”;  Clavier[2, 0] .Text = “9”;
Clavier[0,1] .Text = “4”; Clavier[1, 1] .Text = “5”;  Clavier[2, 1] .Text = “6”;
Clavier[0,2] .Text = “1”; Clavier[1, 2] .Text = “2”;  Clavier[2, 2] .Text = “3”;
Clavier[0,3].Text = “0”; Clavier[1,3].Visible = 0;  Clavier[2,3].Visible = 0;

Cet exemple permet de définir un clavier numérique composé de boutons.

Chaque attribut ou méthode sera propre à chacun des objets et donc à chaque fois on précisera l ’élément du tableau auquel s ’applique l ’attribut ou la méthode.

NomDeTableauDObjet[ ligne].Attribut

NomDeTableauDObjet[ ligne].Fonction()

NomDeTableauDObjet[ colonne].Attribut

NomDeTableauDObjet[ colonne].Fonction()

NomDeTableauDObjet[ colonne, ligne].Attribut

NomDeTableauDObjet[ colonne, ligne].Fonction()

Par contre tous les événements seront communs, c ’est à dire qu ’une seule et même clause permettra de traiter tous les objets. Les fonctions GetSelCol et GetSelRow permettent de connaître les coordonnées de l ’objet du tableau qui a été sujet du dernier événement.

On NomDeTableauDObjet.Evenement do ...

On Clavier.Click do Nombre = Clavier[ GetSelCol(),  GetSelRow()].Text;