IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flash Pascal Discussion :

Tableau de constantes [Flash Pascal]


Sujet :

Flash Pascal

  1. #1
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 069
    Points : 15 454
    Points
    15 454
    Billets dans le blog
    9
    Par défaut Tableau de constantes
    Bonjour !

    Je voudrais faire un dessin qui relie les points d'une figure, comme on en trouve dans les livres de coloriage. J'ai besoin de mettre dans mon code les coordonnées des points.

    J'ai essayé la déclaration d'un tableau de constantes, mais ça ne passe pas. Pourtant j'ai vérifié mon code et je crois qu'il est correct :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    const
     
      Figure: Array [1..82, 1..2] Of Integer=(
      (11,36),(11,35),(12,34),(12,33),(13,32),(14,31),(15,30),(16,29),(16,28),(17,27),
      (17,26),(17,25),(16,24),(14,24),(15,24),(14,23),(15,22),(16,21),(18,20),(19,19),
      (19,18),(18,17),(17,16),(17,15),(17,14),(17,13),(18,12),(19,11),(20,10),(21,10),
      (22,10),(23,10),(24,11),(25,12),(26,13),(26,14),(26,15),(26,16),(25,17),(24,18),
      (24,19),(25,20),(27,21),(28,22),(29,23),(27,24),(28,24),(29,24),(26,25),(26,26),
      (26,27),(27,28),(27,29),(28,30),(29,31),(30,32),(31,33),(31,34),(32,35),(32,36),
      (32,37),(31,37),(30,37),(29,37),(28,37),(27,37),(26,37),(25,37),(24,37),(23,37),
      (22,37),(21,37),(20,37),(19,37),(18,37),(17,37),(16,37),(15,37),(14,37),(13,37),
      (12,37),(11,37));
    J'ai aussi essayé quelque chose comme ça, mais je n'ai pas trouvé la bonne façon de l'écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Var
      c: Array [1..82] Of Array [1..2] Of Integer;
     
    begin
      c[01]:=(11,36);c[02]:=(11,35);c[03]:=(12,34);c[04]:=(12,33);
      c[05]:=(13,32);c[06]:=(14,31);c[07]:=(15,30);c[08]:=(16,29);
      c[09]:=(16,28);c[10]:=(17,27);c[11]:=(17,26);c[12]:=(17,25);
      {...}
    Comment pourrais-je faire pour mettre dans mon code ce genre de données ?

    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  2. #2
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    arf, non le premier code est bon c'est un bug du compilateur...

    il transforme Figure[x, y] en Figure[x * 81 + y] alors que la constante est bien un tableau de tableaux...

    voici une version toujours non-officielle du compilateur avec IDE qui corrige cela

    nouveauté dans l'IDE, le preview se fait via l'ActiveX Flash...c'est plus facile de gérer le mode "Auto Refresh" qu'avec le player

    le mode "Auto Refresh" permet d'appliquer directement les modifications du code dans l'animation flash qui est recompilée et rechargée automatiquement ! (il faut cocher la case pour cela)

    PascalEditor.zip

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    program test;
     
    uses            
      Flash8;
     
    const 
      Figure: Array [1..82, 1..2] Of Integer=(
      (11,36),(11,35),(12,34),(12,33),(13,32),(14,31),(15,30),(16,29),(16,28),(17,27),
      (17,26),(17,25),(16,24),(14,24),(15,24),(14,23),(15,22),(16,21),(18,20),(19,19),
      (19,18),(18,17),(17,16),(17,15),(17,14),(17,13),(18,12),(19,11),(20,10),(21,10),
      (22,10),(23,10),(24,11),(25,12),(26,13),(26,14),(26,15),(26,16),(25,17),(24,18),
      (24,19),(25,20),(27,21),(28,22),(29,23),(27,24),(28,24),(29,24),(26,25),(26,26),
      (26,27),(27,28),(27,29),(28,30),(29,31),(30,32),(31,33),(31,34),(32,35),(32,36),
      (32,37),(31,37),(30,37),(29,37),(28,37),(27,37),(26,37),(25,37),(24,37),(23,37),
      (22,37),(21,37),(20,37),(19,37),(18,37),(17,37),(16,37),(15,37),(14,37),(13,37),
      (12,37),(11,37));
    var
      i: Integer;
     begin
       _root.lineStyle(1, 0);
       _root.moveTo(0,0);
       _root.moveto(Figure[1,1], Figure[1,2]);
     
       for i := 2 to 82 do
           _root.lineTo(Figure[i,1], Figure[i,2]);
     end.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 069
    Points : 15 454
    Points
    15 454
    Billets dans le blog
    9
    Par défaut
    La fonction preview est très pratique.

    Merci pour le code !

    Je vais retravailler un peu mon exemple avant de le poster.

    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  4. #4
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 069
    Points : 15 454
    Points
    15 454
    Billets dans le blog
    9
    Par défaut
    Bonsoir !

    Voici un exemple de code Flash Pascal, qui montre comment on peut se servir d'un tableau de constantes pour dessiner une figure en reliant des points.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    Program Contour;
     
    {$FRAME_WIDTH 400}
    {$FRAME_HEIGHT 400}
    {$BACKGROUND $eeeeff}
     
    Uses
      Flash8;
     
    Const 
      Coord: Array [1..82, 1..2] Of Integer=(
      (11,36),(11,35),(12,34),(12,33),(13,32),
      (14,31),(15,30),(16,29),(16,28),(17,27),
      (17,26),(17,25),(16,24),(15,24),(14,24),
      (14,23),(15,22),(16,21),(18,20),(19,19),
      (19,18),(18,17),(17,16),(17,15),(17,14),
      (17,13),(18,12),(19,11),(20,10),(21,10),
      (22,10),(23,10),(24,11),(25,12),(26,13),
      (26,14),(26,15),(26,16),(25,17),(24,18),
      (24,19),(25,20),(27,21),(28,22),(29,23),
      (29,24),(28,24),(27,24),(26,25),(26,26),
      (26,27),(27,28),(27,29),(28,30),(29,31),
      (30,32),(31,33),(31,34),(32,35),(32,36),
      (32,37),(31,37),(30,37),(29,37),(28,37),
      (27,37),(26,37),(25,37),(24,37),(23,37),
      (22,37),(21,37),(20,37),(19,37),(18,37),
      (17,37),(16,37),(15,37),(14,37),(13,37),
      (12,37),(11,37));
     
    Var
      i, j: Integer;
     
    Begin
     
      _root.lineStyle(1,$000055);
     
      For j := 1 To 10 Do
      Begin
     
        _root.moveTo(j*11-j,j*37-j);
     
        For i := 1 To 82 Do
        Begin
     
          _root.lineTo(j*Coord[i,1]-j,j*Coord[i,2]-j);
     
        End;
     
      End;
     
    End.
    Images attachées Images attachées  
    Fichiers attachés Fichiers attachés
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  5. #5
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    et voici une petite variante

    Nom : Presse-papiers-1.jpg
Affichages : 149
Taille : 26,5 Ko

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    program Contour;
     
    {$FRAME_WIDTH 400}
    {$FRAME_HEIGHT 400}
    {$BACKGROUND $eeeeff}
     
    uses
      Flash8;
     
    const 
      Coord: array [1..82, 1..2] of Integer=(
      (11,36),(11,35),(12,34),(12,33),(13,32),
      (14,31),(15,30),(16,29),(16,28),(17,27),
      (17,26),(17,25),(16,24),(15,24),(14,24),
      (14,23),(15,22),(16,21),(18,20),(19,19),
      (19,18),(18,17),(17,16),(17,15),(17,14),
      (17,13),(18,12),(19,11),(20,10),(21,10),
      (22,10),(23,10),(24,11),(25,12),(26,13),
      (26,14),(26,15),(26,16),(25,17),(24,18),
      (24,19),(25,20),(27,21),(28,22),(29,23),
      (29,24),(28,24),(27,24),(26,25),(26,26),
      (26,27),(27,28),(27,29),(28,30),(29,31),
      (30,32),(31,33),(31,34),(32,35),(32,36),
      (32,37),(31,37),(30,37),(29,37),(28,37),
      (27,37),(26,37),(25,37),(24,37),(23,37),
      (22,37),(21,37),(20,37),(19,37),(18,37),
      (17,37),(16,37),(15,37),(14,37),(13,37),
      (12,37),(11,37));
     
    var
      i, j: Integer;
      m1,m2 : MovieClip;
    begin
     
      m1 := MovieClip.Create(nil, 'm1', 0);
      m1.lineStyle(1,$000055);
      m1.beginFill($ffffff);
      m1.moveTo(11,37);  
     
      for i := 1 to 82 do
      begin
        m1.lineTo(Coord[i,1], Coord[i,2] );
      end;
     
      for j := 1 to 10 do
      begin
        m2 := m1.duplicateMovieClip(IntToStr(j), j);
        m2._x := 15 * j;
        m2._y := 10 * j;
        m2._xscale := 100 + 5 * j * j;
        m2._yscale := 100 + 5 * j * j; 
      end;
     
    end.
    NB: ne me demandez pas pourquoi il faut passer par m1, si on duplique _root directement ça ne fonctionne pas

    si vous n'avez pas la déclaration de duplicateMovieClip dans la classe MovieClip la voici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    type
     MovieClip=external class
      constructor Create(Parent:MovieClip; Name:string; Depth:integer) as Parent.createEmptyMovieClip;
      function duplicateMovieClip(name: string; depth: Integer): MovieClip;
    ...
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. tableau de constantes (ou tableau constant ?)
    Par le petit nicolas dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 14/06/2007, 22h24
  2. Tableau de constantes dans une classe statique
    Par Nico_stras dans le forum C#
    Réponses: 4
    Dernier message: 05/03/2007, 20h18
  3. [Tableaux] nom en tableau ou constante
    Par Yoshio dans le forum Langage
    Réponses: 4
    Dernier message: 13/09/2006, 10h42
  4. [Tableaux] tableau de constantes
    Par ctrl+z dans le forum Langage
    Réponses: 2
    Dernier message: 10/08/2006, 11h49
  5. [VBA-E] un tableau de constantes
    Par tinmarbusir dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 05/07/2006, 15h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo