Soutenez-nous
Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 14 sur 14
  1. #1
    Expert Confirmé Sénior
    Avatar de Paul TOTH
    Homme Profil pro Paul TOTH
    Freelance
    Inscrit en
    novembre 2002
    Messages
    5 337
    Détails du profil
    Informations personnelles :
    Nom : Homme Paul TOTH
    Âge : 44
    Localisation : Réunion

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

    Informations forums :
    Inscription : novembre 2002
    Messages : 5 337
    Points : 13 903
    Points
    13 903

    Par défaut Nouvelle version 12.06.21 disponible !

    Au menu de cette nouvelle version, quelques corrections de bug, mais surtout la possibilité d'intégrer des polices de caractères dans l'animation.

    c'est important pour:
    intégrer un titre dans une police particulière pas forcément disponible sur le PC destination

    pour pouvoir appliquer des transformations (notamment la rotation) sur le texte.

    Voir le menu "Versions" pour le détail et l'application "Police.fpr" pour un exemple.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Produits : UPnP, RemoteOffice, FlashPascal
    Embarcadero : Ile de la Réunion, Dephi, C++Builder, RADPHP...TVA à 8,5%

  2. #2
    Rédacteur
    Avatar de Roland Chastain
    Homme Profil pro Roland Chastain
    Inscrit en
    décembre 2011
    Messages
    1 084
    Détails du profil
    Informations personnelles :
    Nom : Homme Roland Chastain
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : décembre 2011
    Messages : 1 084
    Points : 1 976
    Points
    1 976

    Par défaut

    J'ai trouvé l'exemple "Police" très instructif. Il y a une seule chose que je n'ai pas bien saisie. A quoi servent donc les chaînes de caractère placées dans les accolades ?
    L'Art est long et le Temps est court.

  3. #3
    Expert Confirmé Sénior
    Avatar de Paul TOTH
    Homme Profil pro Paul TOTH
    Freelance
    Inscrit en
    novembre 2002
    Messages
    5 337
    Détails du profil
    Informations personnelles :
    Nom : Homme Paul TOTH
    Âge : 44
    Localisation : Réunion

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

    Informations forums :
    Inscription : novembre 2002
    Messages : 5 337
    Points : 13 903
    Points
    13 903

    Par défaut

    Citation Envoyé par Roland Chastain Voir le message
    J'ai trouvé l'exemple "Police" très instructif. Il y a une seule chose que je n'ai pas bien saisie. A quoi servent donc les chaînes de caractère placées dans les accolades ?
    ok, alors si tu n'indiques rien, tous les caractères disponibles dans la police sont inclus dans l'animation...en réalité unique entre #0 et #255, je n'accepte pas les caractères unicode.

    si tu précises des caractères, seuls ces caractères sont inclus.

    en pratique, si tu veux mettre un titre "Bonjour le Monde !" dans une police particulière qui ne sera utilisée que pour ce titre, tu as intérêt de limite le $FONT aux lettres " !BMejlnoru"
    Code :
    {$FONT titre 'Arial' [bold] ' !BMejlnoru'}
    ...mais pour te simplifier la tâche tu peux tout simplement taper le texte "Bonjour le Monde !" , le compilateur fera le tri.
    Code :
    {$FONT titre 'Arial' [bold] 'Bonjour le monde !'}
    Et pour intégrer des séries de caractères j'ai ajouté une syntaxe ".." de type 'A'..'Z0'..'9' qui correspond aux lettres A à Z et 0 à 9. Les deux points prennent la lettre qui précède et celle qui suit et complète la chaîne avec toutes les lettres présentes entre les deux.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Produits : UPnP, RemoteOffice, FlashPascal
    Embarcadero : Ile de la Réunion, Dephi, C++Builder, RADPHP...TVA à 8,5%

  4. #4
    Rédacteur
    Avatar de Roland Chastain
    Homme Profil pro Roland Chastain
    Inscrit en
    décembre 2011
    Messages
    1 084
    Détails du profil
    Informations personnelles :
    Nom : Homme Roland Chastain
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : décembre 2011
    Messages : 1 084
    Points : 1 976
    Points
    1 976

    Par défaut

    Pour essayer de faire le tour de la question des polices.

    Y a-t-il un code d'erreur renvoyé par le constructeur TextFormat.Create(), quelque chose qui permette de savoir si la police système qu'on veut utiliser est disponible ?
    L'Art est long et le Temps est court.

  5. #5
    Expert Confirmé Sénior
    Avatar de Paul TOTH
    Homme Profil pro Paul TOTH
    Freelance
    Inscrit en
    novembre 2002
    Messages
    5 337
    Détails du profil
    Informations personnelles :
    Nom : Homme Paul TOTH
    Âge : 44
    Localisation : Réunion

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

    Informations forums :
    Inscription : novembre 2002
    Messages : 5 337
    Points : 13 903
    Points
    13 903

    Par défaut

    Pas à ma connaissance, comme n'importe quelle application Windows, une police de substitution est sélectionnée automatiquement.

    Flash est multiplateforme, mais on peut raisonnablement penser que les polices classiques du web (Arial, Verdana, Times, Courier) sont présentes...pour les autres, rien n'est moins sur
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Produits : UPnP, RemoteOffice, FlashPascal
    Embarcadero : Ile de la Réunion, Dephi, C++Builder, RADPHP...TVA à 8,5%

  6. #6
    Rédacteur
    Avatar de Roland Chastain
    Homme Profil pro Roland Chastain
    Inscrit en
    décembre 2011
    Messages
    1 084
    Détails du profil
    Informations personnelles :
    Nom : Homme Roland Chastain
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : décembre 2011
    Messages : 1 084
    Points : 1 976
    Points
    1 976

    Par défaut

    Citation Envoyé par Paul TOTH Voir le message
    Pas à ma connaissance, comme n'importe quelle application Windows, une police de substitution est sélectionnée automatiquement.

    Flash est multiplateforme, mais on peut raisonnablement penser que les polices classiques du web (Arial, Verdana, Times, Courier) sont présentes...pour les autres, rien n'est moins sur
    Tout cela est très bon à savoir. Merci pour le lien.
    L'Art est long et le Temps est court.

  7. #7
    Rédacteur
    Avatar de Roland Chastain
    Homme Profil pro Roland Chastain
    Inscrit en
    décembre 2011
    Messages
    1 084
    Détails du profil
    Informations personnelles :
    Nom : Homme Roland Chastain
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : décembre 2011
    Messages : 1 084
    Points : 1 976
    Points
    1 976

    Par défaut

    J'ai écrit un petit exemple qui permet de se faire une idée des différentes polices.

    Code :
    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
     
    program Exemple;
     
    uses
      Flash8;
    {$FRAME_WIDTH 640}
    {$FRAME_HEIGHT 300}
     
    function UCase(s: string): string;
    var
      i: integer;
      temp: string;
    begin
      temp := '';
      for i := 1 to length(s) do
      begin
        if (Ord(s[i]) >= 97) and (Ord(s[i]) <= 122) then
          temp := temp + Chr(Ord(s[i]) - 32) else
          temp := temp + s[i];
      end;
      result := temp;
    end;
     
    const
      alphabet = "abcdefghijklmnopqrstuvwxyz";
     
    begin
      with TextField.Create(nil, '', 1, 10, 10, 640 - 2 * 10, 300 - 2 * 10) do
      begin
        Text := alphabet + #10 + UCase(alphabet) + #10 +
                alphabet + #10 + UCase(alphabet) + #10 +
                alphabet + #10 + UCase(alphabet) + #10 ;
        setTextFormat(0, 53, TextFormat.Create('Arial', 24));
        setTextFormat(54, 107, TextFormat.Create('Times', 24));
        setTextFormat(108, 161, TextFormat.Create('Courier', 24));
      end;
      Stage.scaleMode := 'noScale';
    end.
    Au fait quelle différence entre #10 et #13 ? Car je constate qu'on emploie tantôt l'un tantôt l'autre pour le retour à la ligne.
    Fichiers attachés Fichiers attachés
    L'Art est long et le Temps est court.

  8. #8
    Expert Confirmé Sénior
    Avatar de Paul TOTH
    Homme Profil pro Paul TOTH
    Freelance
    Inscrit en
    novembre 2002
    Messages
    5 337
    Détails du profil
    Informations personnelles :
    Nom : Homme Paul TOTH
    Âge : 44
    Localisation : Réunion

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

    Informations forums :
    Inscription : novembre 2002
    Messages : 5 337
    Points : 13 903
    Points
    13 903

    Par défaut

    J'ai en effet constaté que #10 et #13 font passer tous les deux à la ligne...mais je n'ai pas trouvé la confirmation officielle.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Produits : UPnP, RemoteOffice, FlashPascal
    Embarcadero : Ile de la Réunion, Dephi, C++Builder, RADPHP...TVA à 8,5%

  9. #9
    Rédacteur
    Avatar de Roland Chastain
    Homme Profil pro Roland Chastain
    Inscrit en
    décembre 2011
    Messages
    1 084
    Détails du profil
    Informations personnelles :
    Nom : Homme Roland Chastain
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : décembre 2011
    Messages : 1 084
    Points : 1 976
    Points
    1 976

    Par défaut Polices embarquées

    Je m'étais imaginé que les polices "embarquables" étaient contenues, en nombre limité, dans le compilateur. Ça me paraissait trop beau que, sans que je fasse rien, le compilateur aille chercher dans ma machine la police à embarquer et l'intègre dans le fichier Flash. Mais le concepteur de FlashPascal a plus d'un tour dans son sac.

    Du coup j'ai commencer à creuser la question des polices pour le jeu d'échecs. En fait c'est simple comme tout, sauf que toutes les polices n'utilisent pas les mêmes conventions et qu'elles ne sont pas toujours documentées, ce qui fait qu'on perd du temps à chercher les bonnes combinaisons de caractères.

    Ce qui est intéressant dans ces polices, outre la simplicité du format (tout l'échiquier dans une simple chaîne de caractère), c'est qu'elles sont redimensionnables (si ce mot existe), ce qui s'accorde bien avec la nature de FlashPascal.

    Voici un exemple :

    Code :
    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
     
    program embed_fonts; (* Police intégrée *)
     
    uses
      Flash8;
     
    {$FRAME_HEIGHT 488}
    {$FRAME_WIDTH  488}
    {$BACKGROUND $F5F5DC} (* beige *)
     
    {$FONT Utrecht 'Chess Utrecht'}
     
    var
      f: textFormat;
    begin
      f := textFormat.Create('Utrecht', 48); f.color := $000088;
     
      with textField.Create(nil, '', 0, 0, 0, Stage.width, Stage.height) do
      begin
        embedFonts := True;
        setNewTextFormat(f);
        Text := '5111111116'#10+
                '3RMBWKVNT2'#10+
                '3OPOPOPOP2'#10+
                '3 / / / /2'#10+
                '3/ / / / 2'#10+
                '3 / / / /2'#10+
                '3/ / / / 2'#10+
                '3popopopo2'#10+
                '3TNVQLBMR2'#10+
                '7444444448';
      end;
     
    end.
    Images attachées Images attachées
    L'Art est long et le Temps est court.

  10. #10
    Expert Confirmé Sénior
    Avatar de Paul TOTH
    Homme Profil pro Paul TOTH
    Freelance
    Inscrit en
    novembre 2002
    Messages
    5 337
    Détails du profil
    Informations personnelles :
    Nom : Homme Paul TOTH
    Âge : 44
    Localisation : Réunion

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

    Informations forums :
    Inscription : novembre 2002
    Messages : 5 337
    Points : 13 903
    Points
    13 903

    Par défaut

    et oui ! c'est magique

    alors pour préciser les choses, FlashPascal exploite une fonction de l'API Windows qui permet de récupérer la forme des lettres en vectoriel: GetGlyphOutline.

    Ces informations sont exploitées pour créer la police vectorielle Flash dans son format natif à base de LineTo et CurveTo. Il peut donc y avoir un décalage entre l'original et la version Flash.

    Contrairement aux polices Windows, la polices Flash ont une résolution unique de 20480 pixels qui est mise à l'échelle au besoin. Il en résulte un dessin généralement plus joli, sauf pour des tailles inférieures à 12 pixels. Les polices TrueType peuvent en effet avoir des formes différentes en fonction de la taille demandée, ce qui n'est pas le cas sous Flash.

    Or donc, n'importe quelle police True Type présente sur le PC qui compile l'application peut être incorporée dans l'animation.

    Et pour rappel, par défaut, tous les caractères entre #0 et #255 sont intégrés (s'ils sont disponible dans la police évidemment), mais il est possible de n'intégrer qu'un petit nombre d'entre eux en les spécifiant après le nom de la police.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Produits : UPnP, RemoteOffice, FlashPascal
    Embarcadero : Ile de la Réunion, Dephi, C++Builder, RADPHP...TVA à 8,5%

  11. #11
    Membre émérite
    Avatar de neilbgr
    Homme Profil pro Neil
    Développeur .NET
    Inscrit en
    août 2004
    Messages
    646
    Détails du profil
    Informations personnelles :
    Nom : Homme Neil
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : août 2004
    Messages : 646
    Points : 919
    Points
    919

    Par défaut

    Bonjour,

    Citation Envoyé par Roland Chastain Voir le message
    Au fait quelle différence entre #10 et #13 ? Car je constate qu'on emploie tantôt l'un tantôt l'autre pour le retour à la ligne.
    #13 => Retour chariot
    #10 => Nouvelle ligne

    C'est un héritage historique des machines à écrire et autres imprimantes ancestrales à qui il fallait leur dire gentiment de mettre le chariot à gauche puis de sauter une ligne pour être prêt à écrire.

    Par la suite le monde Unix a préféré garder que le #10 (\n), Apple lui le #13 (\r), et Microsoft a gardé les 2.
    Or le but de chacun étant d'aller à la ligne à gauche, aussi bien en Delphi qu'en C#, l'un ou l'autre ou les deux sont interprétés de la même manière.

    Le mieux est d'utiliser la constante sLineBreak déclaré dans System.pas:
    Code :
    1
    2
    3
    const
      sLineBreak = {$IFDEF LINUX} AnsiChar(#10) {$ENDIF} 
                   {$IFDEF MSWINDOWS} AnsiString(#13#10) {$ENDIF};
    C'est plus parlant et ça se débrouille...
    "Si vous voulez être l’esclave des banques et payer pour financer votre propre esclavage, alors laissez les banquiers créer la monnaie" - Josiah Stamp, 1920, Gouverneur de la Banque d’Angleterre
    "Qui ne peut acheter ruine qui voudrait vendre" - Jacques Duboin.
    "Nous n'héritons pas la terre de nos parents, nous l'empruntons à nos enfants." - Antoine de Saint Exupéry

  12. #12
    Expert Confirmé Sénior
    Avatar de Paul TOTH
    Homme Profil pro Paul TOTH
    Freelance
    Inscrit en
    novembre 2002
    Messages
    5 337
    Détails du profil
    Informations personnelles :
    Nom : Homme Paul TOTH
    Âge : 44
    Localisation : Réunion

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

    Informations forums :
    Inscription : novembre 2002
    Messages : 5 337
    Points : 13 903
    Points
    13 903

    Par défaut

    Citation Envoyé par neilbgr Voir le message
    Bonjour,



    #13 => Retour chariot
    #10 => Nouvelle ligne

    C'est un héritage historique des machines à écrire et autres imprimantes ancestrales à qui il fallait leur dire gentiment de mettre le chariot à gauche puis de sauter une ligne pour être prêt à écrire.

    Par la suite le monde Unix a préféré garder que le #10 (\n), Apple lui le #13 (\r), et Microsoft a gardé les 2.
    Or le but de chacun étant d'aller à la ligne à gauche, aussi bien en Delphi qu'en C#, l'un ou l'autre ou les deux sont interprétés de la même manière.

    Le mieux est d'utiliser la constante sLineBreak déclaré dans System.pas:
    Code :
    1
    2
    3
    const
      sLineBreak = {$IFDEF LINUX} AnsiChar(#10) {$ENDIF} 
                   {$IFDEF MSWINDOWS} AnsiString(#13#10) {$ENDIF};
    C'est plus parlant et ça se débrouille...
    tout à fait...mais là on parle de FlashPascal ... et donc de Flash
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Produits : UPnP, RemoteOffice, FlashPascal
    Embarcadero : Ile de la Réunion, Dephi, C++Builder, RADPHP...TVA à 8,5%

  13. #13
    Rédacteur
    Avatar de Roland Chastain
    Homme Profil pro Roland Chastain
    Inscrit en
    décembre 2011
    Messages
    1 084
    Détails du profil
    Informations personnelles :
    Nom : Homme Roland Chastain
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : décembre 2011
    Messages : 1 084
    Points : 1 976
    Points
    1 976

    Par défaut

    Voici un autre essai. Cette fois j'ai cherché les caractères à partir de leur numéro, et j'ai eu soin de spécifier l'ensemble des caractères à intégrer. Il y en a encore en trop, puisque je me suis contenté de spécifier un intervalle, mais enfin le principe est là. Résultat, un fichier compilé de 12,4 Ko au lieu de 20,4 en intégrant toute la police.

    Cette histoire de police intégrée m'a donné des idées. Après tout, qu'est-ce qui empêcherait de faire une page web entièrement avec FlashPascal ?

    Code :
    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
     
    program chess_font;
    uses
      Flash8;
    {$FRAME_HEIGHT 488}
    {$FRAME_WIDTH  488}
    {$BACKGROUND $F5F5DC}
     
    {$FONT alpha 'Chess Alpha' #32..#119}
     
    var
      f: textFormat;
    begin
      f := textFormat.Create('alpha', 48); f.color := $000088;
      with textField.Create(nil, '', 0, 0, 0, Stage.width, Stage.height) do
      begin
        embedFonts := True;
        setNewTextFormat(f);
        Text := #049#050#050#050#050#050#050#050#050#051#10+
                #052#116#074#110#087#108#078#106#084#053#10+
                #052#079#111#079#119#076#111#079#111#053#10+
                #052#032#043#032#043#032#043#032#043#053#10+
                #052#043#032#043#032#043#032#043#032#053#10+
                #052#032#043#032#043#032#043#032#043#053#10+
                #052#043#032#043#032#043#032#043#032#053#10+
                #052#112#080#112#081#107#080#112#080#053#10+
                #052#082#104#066#113#075#098#072#114#057#10+
                #054#055#055#055#055#055#055#055#055#056;
      end;
    end.
    Images attachées Images attachées
    L'Art est long et le Temps est court.

  14. #14
    Expert Confirmé Sénior
    Avatar de Paul TOTH
    Homme Profil pro Paul TOTH
    Freelance
    Inscrit en
    novembre 2002
    Messages
    5 337
    Détails du profil
    Informations personnelles :
    Nom : Homme Paul TOTH
    Âge : 44
    Localisation : Réunion

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

    Informations forums :
    Inscription : novembre 2002
    Messages : 5 337
    Points : 13 903
    Points
    13 903

    Par défaut

    oui tu peux tout à fait faire une page entièrement en FlashPascal
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Produits : UPnP, RemoteOffice, FlashPascal
    Embarcadero : Ile de la Réunion, Dephi, C++Builder, RADPHP...TVA à 8,5%

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •