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 :

Nouvelle version 12.06.10 de PascalEditor


Sujet :

Flash Pascal

  1. #1
    Expert éminent sénior
    Nouvelle version 12.06.10 de PascalEditor
    Bonjour,

    Cette nouvelle version est peu testée, mais elle corrige quelques bugs, il m'a semblé donc important de la publier. Comme une bonne partie du compilateur a été revue, si vous avez un source qui ne compile plus sur cette version, merci de me le soumettre.

    Les nouveautés:
    - les expressions constantes sont évaluées à la compilation
    - les RECORD sont reconnus
    - le mot WITH est reconnu
    - correction de Low() et High() sur un paramètre Array of
    - correction d'un retour de fonction avec un type Array of
    - déclaration des classes "forward"
    - propriétés et fonctions de classe

    je crois que c'est tout

    EDIT: il est aussi possible d'utiliser pleinement les unités (mais pas d'initialization/finalization) ! par contre il n'y a encore aucune optimisation et tout le code de toutes les unités est inclut dans le .SWF
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  2. #2
    Membre expérimenté
    C'est déjà énorme ! Je vais bientôt retrouver les sensations que j'ai en Delphi.
    Bravo

    Je teste et te retourne d'éventuels bugs ou compléments à rajouter.

    Ps: je n'ai pas trop le temps cette semaine mais après je me rattrape .

    @+

  3. #3
    Rédacteur/Modérateur

    Citation Envoyé par Paul TOTH Voir le message
    Les nouveautés:
    - les expressions constantes sont évaluées à la compilation
    - les RECORD sont reconnus
    - le mot WITH est reconnu
    - correction de Low() et High() sur un paramètre Array of
    - correction d'un retour de fonction avec un type Array of
    - déclaration des classes "forward"
    - propriétés et fonctions de classe
    On va essayer tout ça.

  4. #4
    Membre expérimenté
    Tu as un problème avec le
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    with      do 
    begin
    end;


    le code est accepté mais ça ne fonctionne pas...
    J'étais frustré avec ça lol, alors je n'ai pas pu m'empêcher d'essayer...

  5. #5
    Expert éminent sénior
    Citation Envoyé par Archimède Voir le message
    Tu as un problème avec le
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    with      do 
    begin
    end;


    le code est accepté mais ça ne fonctionne pas...
    J'étais frustré avec ça lol, alors je n'ai pas pu m'empêcher d'essayer...
    peux-tu me donner le code qui ne fonctionne pas, car si je n'ai pas tout testé, il fonctionne dans certains cas

    il faut dire que c'est un peu spécial car WITH est géré directement par la machine virtuelle Flash, mais ça pose des problèmes. Par exemple, si tu déclares un objets avec des propriétés:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    type
      TMonObjet = class
        a,b,c:Integer;
      end;
    var
      o: TMonObjet;


    le "with o" ne pourra modifier a, b ou c que s'ils ont déjà été initialisés...or pour l'instant le compilateur n'initialise pas les membres des objets.

    donc si tu veux faire un with sur un objet pour modifier ces membres, ajoute dans le constructor l'initialisation de ceux-ci.


    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
     
    program test;
     
    uses
      Flash8;
     
    type
      TMonObjet = class
        a, b, c: Integer;
        constructor Create;
      end;
     
    constructor TMonObjet.Create;
    begin
      a := 0;
      b := 0;
      c := 0;
    end;
     
    var
      t: TextField;
      o: TMonObjet;
    begin
      t := TextField.Create(nil, 't', 1, 0, 0, 200, 21);
      o := TMonObjet.Create;
      with o do
      begin
        a := 1;
        b := 2;
        c := 3;
      end;
      t.Text := IntToStr(o.a)+ ', ' + IntToStr(o.b) + ', ' + IntToStr(o.c);
    end.


    sans l'initialisation tu obtiens "undefined, undefined, undefined"
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  6. #6
    Membre expérimenté
    Désolé de répondre en retard mais je n'ai pas le temps en ce moment...

    oui par exemple :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     procedure RealMovie.RTextout(x,y,width,height,Depth:number;font:TextFormat;text:String);
    var Field:TextField;
    begin
     Field:=TextField.Create(self,'',Depth,xo+Gx*(x),yo-Gy*(y),width,height);
     with field do
     begin
      setNewTextFormat(font);
      text:=text;
     end;
    end;


    J'ai bien compris le problème mais si c'est tirer autant de lignes de code en utilisant with do, ça n'a pas beaucoup d'intérêt...

    merci pour le html template sympa !!

    je vais reprendre ma pendule en fin de semaine. il y a toujours le chevauchement de couleurs qui n'est pas réglé avec les aiguilles.
    Peut-être qu'en les gérant dans différents movieclips avec rotate, ça réglerait le problème... Mais je suis devenu prudent avec rotate quand j'ai vu les beaux décalages que j'avais avec la roue-cycloïde. J'ai préféré gérer ça moi-même...

  7. #7
    Expert éminent sénior
    merci, j'ai corrigé un bug dans l'expression "with"...mais text := text ne passera pas malgré tout

    pour le chevauchement des couleurs, tu parles du fait que les deux aiguilles sont jaunes ? l'usage de Movieclip avec _rotation ne changera rien visuellement...
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  8. #8
    Membre expérimenté
    Non, ce n'est pas la couleur or qui était voulue au départ...
    Je m'explique... Lorsque la petite aiguille parvient sur la grande et bien la surface de chevauchement n'est plus colorée. C'est pour ça que j'avais fait deux beginFill() et EndFill() pour palier à ce problème.
    Mais ça ne règle pas la perte de couleur.
    Tu peux faire un essai, tu verras.
    Je pensais à deux movieclips n'ayant pas la même profondeur en utilisant rotate.
    je réfléchis...

    ps: c'est vrai , le text:=text, ça va pas le faire ...Désolé, je n'avais pas vu.