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 :

Essai d'une horloge numérique


Sujet :

Flash Pascal

  1. #1
    Rédacteur/Modérateur

    Essai d'une horloge numérique
    Bonjour !

    J'ai essayé de faire une petite horloge numérique. Elle a deux défauts.

    Le premier, c'est que lorsqu'il y a, par exemple, 7 secondes, l'horloge affiche "7" et non pas "07" comme il le faudrait. Comment vous y prendriez-vous pour corriger cela ?

    Le deuxième défaut, plus grave, c'est que l'horloge s'initialise une seule fois, à l'ouverture de la page, et ensuite reste figée. C'est le même problème que j'avais rencontré avec ma trotteuse, mais je ne vois pas comment transposer la solution à un objet de type TextField.

    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
    program Exemple; uses Flash8, Date;
     
    {$FRAME_WIDTH    272}
    {$FRAME_HEIGHT    48}
    {$FRAME_RATE      32}
    {$BACKGROUND $eeeeee}
     
    var
      d: TDate;
      f: TextFormat;
      m: MovieClip;
      t: TextField;
     
    begin
      d:=TDate.Create;
     
      f:=TextFormat.Create('Tahoma',24);
      f.color:=$555555;
      f.align:='center';
      f.bold:=True;
     
      m:=MovieClip.Create(nil,'m',0);
      m.beginFill($cccccc);
     
      m.lineStyle(1,$000000);
      m.moveTo(0,32);
      m.lineTo(0,0);
      m.lineTo(256,0);
      m.lineTo(256,32);
      m.lineTo(0,32);
     
      m._x:=8;
      m._y:=8;
     
      t:=TextField.Create(m,'t',0,0,0,256,32);
      t.setNewTextFormat(f);
     
      t.text:=IntToStr(d.getHours);
      t.text:=t.text+#32#58#32;
      t.text:=t.text+IntToStr(d.getMinutes);
      t.text:=t.text+#32#58#32;
      t.text:=t.text+IntToStr(d.getSeconds);
     
      //t.setTextFormat(f);
    end.

  2. #2
    Expert éminent sénior
    voici

    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
    56
    57
    58
    59
    60
    61
    62
     
    program Exemple; uses Flash8, Date;
     
    {$FRAME_WIDTH    272}
    {$FRAME_HEIGHT    48}
    {$FRAME_RATE      32}
    {$BACKGROUND $eeeeee}
     
    type
      THorloge = class(MovieClip)
        procedure onEnterFrame;
      end;
     
    var
      d: TDate;
      f: TextFormat;
      m: THorloge;
      t: TextField;
     
    function IntToStr2(i: Integer): string;
    begin
      Result := IntToStr(i);
      if i < 10 then
        Result := '0' + Result;
    end;
     
    procedure THorloge.onEnterFrame;
    begin
      d:=TDate.Create;
      t.text:=IntToStr(d.getHours);
      t.text:=t.text+#32#58#32;
      t.text:=t.text+IntToStr2(d.getMinutes);
      t.text:=t.text+#32#58#32;
      t.text:=t.text+IntToStr2(d.getSeconds);
    end;
     
    begin
     
      f:=TextFormat.Create('Tahoma',24);
      f.color:=$555555;
      f.align:='center';
      f.bold:=True;
     
      m:=THorloge.Create(nil,'m',0);
      m.beginFill($cccccc);
     
      m.lineStyle(1,$000000);
      m.moveTo(0,32);
      m.lineTo(0,0);
      m.lineTo(256,0);
      m.lineTo(256,32);
      m.lineTo(0,32);
     
      m._x:=8;
      m._y:=8;
     
      t:=TextField.Create(m,'t',0,0,0,256,32);
      t.setNewTextFormat(f);
     
     
      //t.setTextFormat(f);
    end.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Rédacteur/Modérateur

    Merci bien!

    Ça a l'air simple une fois qu'on le voit, mais encore fallait-il le trouver.

    Je crois que ma page d'exemples va commencer à avoir de l'allure.

  4. #4
    Rédacteur/Modérateur

    Paul TOTH ayant eu la gentillesse de mentionner mes exemples Flash-Pascal en inaugurant le nouveau forum, j'ai cherché à rendre la page en question un peu plus intéressante.
    J'ai retravaillé mon horloge numérique, mais cette fois je ne l'ai pas insérée dans une page html. Le fichier swf s'ouvre directement dans le navigateur. C'est beaucoup plus joli, je trouve. En travaillant de cette façon, avec le souvenir des dernières discussions, j'ai commencé à mieux comprendre l'affichage des animations Flash.

    Je peux déclarer les dimensions suivantes
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    {$FRAME_WIDTH 40}
    {$FRAME_HEIGHT 30}

    et avoir au bout du compte une image qui remplit toute la fenêtre du navigateur. Moi j'avais pris ça pour des pixels, alors que c'est un repère ou une échelle qu'on choisit à sa guise. Paul ou Archimède me corrigeront si cette explication n'est pas exacte.

    J'aurais bien voulu être le premier à contribuer aux sources Flash-Pascal, mais le robot ouvrirait une nouvelle discussion.