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

Contribuez Pascal Discussion :

Projet d'un programme de jeu d'échecs


Sujet :

Contribuez Pascal

  1. #161
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    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 072
    Points : 15 458
    Points
    15 458
    Billets dans le blog
    9
    Par défaut
    Merci pour ta réponse, Jipété. Oui, pour les pièces Chess Montreal, c'est vrai ce que tu dis : j'ai toujours une demi-seconde d'hésitation pour savoir laquelle est le roi, laquelle est la dame. Mais je les trouve belles. Bon, là-dessus, je m'en vais dormir.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  2. #162
    Membre confirmé

    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 140
    Points : 623
    Points
    623
    Par défaut
    Citation Envoyé par Roland Chastain Voir le message
    D'accord. Donc, si je comprends bien, BGRAReplace() équivaut à Create().
    BGRAReplace revient a appeler Free pour liberer la memoire, puis a affecter la nouvelle valeur.

    Je suis touche. Au fait il faut mettre BGRABitmapTypes et BGRAGradients and la clause Uses.

    Au sujet des pieces, ben, il faudrait des pieces dessinees avec antialiasing. Et eventuellement, les colorer un peu. Pour la coloration on peut faire cela par programmation, pour l'antialiasing, il faudrait trouver d'autre fichiers.

    Par exemple:
    Images attachées Images attachées  
    Par-delà nos conceptions du bien et du mal se trouve une prairie. Je te rencontrerai là-bas.

  3. #163
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    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 072
    Points : 15 458
    Points
    15 458
    Billets dans le blog
    9
    Par défaut
    Donc, si je comprends bien, la première fois la méthode Free est appelée sans que Create() ait été appelée d'abord, mais ça passe.

    Bien noté la précision pour les unités BGRABitmapTypes et BGRAGradients. Merci !

    Pour les pièces, celles que vous montrez sont belles. Elles sont disponibles ? Autrement, pensez-vous qu'il serait possible de générer des pièces à partir d'une police True Type ? Si je les affiche dans une fenêtre et que je fait une capture d'écran, c'est bon ou pas ? Je demande ça parce qu'il y a de belles pièces, et gratuites, disponibles sous cette forme, notamment . Il y a aussi la police Chess Montreal, que l'auteur m'a permis d'utiliser, et dont vous pouvez voir un aperçu sur cette page.

    P.-S. Et si je traduisais mes pièces actuelles en coordonnées, n'y aurait-il pas moyen d'en faire quelque chose ?
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  4. #164
    Membre confirmé

    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 140
    Points : 623
    Points
    623
    Par défaut
    Bonjour,

    Citation Envoyé par Roland Chastain Voir le message
    Donc, si je comprends bien, la première fois la méthode Free est appelée sans que Create() ait été appelée d'abord, mais ça passe.
    Exact. Techniquement, la fonction Free verifie si self = nil.

    Pour les pièces, celles que vous montrez sont belles. Elles sont disponibles ?
    Oui elles sont gratuites.

    Autrement, pensez-vous qu'il serait possible de générer des pièces à partir d'une police True Type ? Si je les affiche dans une fenêtre et que je fait une capture d'écran, c'est bon ou pas ?
    Ben il y a meme une unite BGRAFreeType qui permet de dessiner des polices True Type. Donc si vous mettez la "arial.ttf" et la police que vous souhaitez dans le repertoire de l'application, puis que vous definissez le rendering pour FreeType, vous pouvez ecrire du texte et dessiner des pieces avec la fonction TextOut. Avec la version pour fpGUI ou pour noGUI, de toutes facons BGRAFreeType est inclu, alors il suffit juste lors de l'initialisation de l'application d'appeler:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TBGRABitmap.AddFreeTypeFontFolder(GetCurrentDir);
    Bien entendu, il faut changer la propriete FontName de l'image pour passer d'une police a une autre.

    Exemple:
    https://sourceforge.net/p/lazpaint/c...ap/test4fpgui/

    P.-S. Et si je traduisais mes pièces actuelles en coordonnées, n'y aurait-il pas moyen d'en faire quelque chose ?
    Oui, avec Canvas2d ou bien TBGRAPath. Ou bien si c'est comme un polygone, avec FillPolyAntialias.
    Par-delà nos conceptions du bien et du mal se trouve une prairie. Je te rencontrerai là-bas.

  5. #165
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 733
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 733
    Points : 15 141
    Points
    15 141
    Par défaut
    Salut salut,
    Citation Envoyé par Roland Chastain Voir le message
    [... ]Autrement, pensez-vous qu'il serait possible de générer des pièces à partir d'une police True Type ? Si je les affiche dans une fenêtre et que je fait une capture d'écran, c'est bon ou pas ?
    Non !
    Tu vas transformer l'affichage de polices (objets vectoriels) en images bitmap, et donc impossible à agrandir/diminuer sans perte de qualité.

    Citation Envoyé par Roland Chastain Voir le message
    [... ]Je demande ça parce qu'il y a de belles pièces, et gratuites, disponibles sous cette forme, notamment . Il y a aussi la police Chess Montreal, que l'auteur m'a permis d'utiliser, et dont vous pouvez voir un aperçu sur cette page.
    Oh la la, tout ce qu'il y a !
    Le problème c'est que c'est très mal présenté pour pouvoir comparer aisément : il aurait fallu une page avec toutes les polices. Bref...
    Si j'ai le temps...
    J'ai regardé le premier quart, j'aime bien Cases, Chess Adventurer, ChessOle.

    Citation Envoyé par Roland Chastain Voir le message
    [... ]P.-S. Et si je traduisais mes pièces actuelles en coordonnées, n'y aurait-il pas moyen d'en faire quelque chose ?
    Ben faudra que tu te mettes à l'étude de la génération de fichiers de polices, et c'est pas une mince affaire !
    Te prends pas la tête, y a choisir sur le site que tu indiques, et hop !
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  6. #166
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    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 072
    Points : 15 458
    Points
    15 458
    Billets dans le blog
    9
    Par défaut
    Merci pour vos réponses. J'ai voulu d'abord faire un essai rapide d'une police True Type, à partir de l'exemple test4fpgui. Voici ce que j'ai fait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    constructor TMainForm.Create(AOwner: TComponent);
    begin
      inherited Create(AOwner);
      FBmp := TBGRABitmap.Create;
      FBmp.FontName := 'Chess Alfonso-X';//'ALFOCHES.TTF';
    end;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure DrawEllipseHello(bmp: TBGRABitmap);
    begin
      ...
      with bmp.FontPixelMetric do
        bmp.TextOut(bmp.Width / 2, bmp.Height / 2 - (CapLine + Baseline) / 2, 'pPoOnNmMbBvV', BGRABlack, taCenter);
    Et le fichier ALFOCHES.TTF dans le même répertoire. Rien ne s'affiche.

    Chess Alfonso-X
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  7. #167
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 733
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 733
    Points : 15 141
    Points
    15 141
    Par défaut
    Citation Envoyé par Roland Chastain Voir le message
    Et le fichier ALFOCHES.TTF dans le même répertoire. Rien ne s'affiche.
    T'es sous Windows ?

    Si oui, il faut installer, même temporairement, la police ! Faut voir les instructions AddFontResource et AddFontResourceEx.

    Mais à l'époque où je l'ai fait, on était sous 98/2000 (ce qui ne me rajeunit pas...). Je ne sais pas du tout si les choses ont beaucoup changé (droits...) sous 7 et 8.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  8. #168
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    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 072
    Points : 15 458
    Points
    15 458
    Billets dans le blog
    9
    Par défaut
    Merci pour ta réponse, Jipété. Oui, Windows. La police est déjà installée, donc ça ne vient pas de là. Je continue de chercher...
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  9. #169
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 733
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 733
    Points : 15 141
    Points
    15 141
    Par défaut
    Citation Envoyé par Roland Chastain Voir le message
    La police est déjà installée, donc ça ne vient pas de là. Je continue de chercher...
    Ah oui, mais si tu nous dis pas tout, aussi...

    [EDIT] : ce qui m'a fait dire ce que j'ai dit dans mon précédent post, c'est le fait que tu as omis de dire que la police avait été installée et en plus tu écrivais
    Et le fichier ALFOCHES.TTF dans le même répertoire.
    , c'est à dire le comportement que j'utilisais quand je faisais beaucoup de typographie et que je ne voulais pas encombrer mon dossier Windows\Fonts. D'où ma méprise.
    Cependant, il ne faudrait pas que la police dans ce dossier mette l'embrouille. Laquelle ? Je ne sais point, mais ayant trouvé 7 très capricieux et 8 encore plus à ce que j'entends dire (ce qui m'a fait fuir), je me méfie de tout... [/EDIT]

    Bon, pendant que tu cherches, moi je bosse, lol :

    Nom : compar_fonts_chess.jpg
Affichages : 1517
Taille : 204,3 Ko

    Il y en a une ou deux qui sont absentes, elles m'ont fait des misères genre pas d'aperçu disponible, alors bon, y en a assez comme ça, on va dire (et y en a certaines franchement imbuvables, àmha)
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  10. #170
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    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 072
    Points : 15 458
    Points
    15 458
    Billets dans le blog
    9
    Par défaut
    Quel boulot ! Merci Jipété !
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  11. #171
    Membre confirmé

    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 140
    Points : 623
    Points
    623
    Par défaut
    Je pense que j'ai trouvé pourquoi rien ne s'affiche.

    Pour corriger le probleme, allez dans le paquet LazUtils (qui est necessaire pour BGRABitmap), puis dans l'unite EasyLazFreeType.

    Vers la ligne 1350, corrigez comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
          { check for Microsoft, Unicode, English }
          if ((nrPlatformID=3) and (nrEncodingID in[0,1]) and
             ((nrLanguageID=$0409) or (nrLanguageID=$0809) or
              (nrLanguageID=$0c09) or (nrLanguageID=$1009) or
              (nrLanguageID=$1409) or (nrLanguageID=$1809))) or
            { or for Unicode, English }
            ((nrPlatformID=0) and
             (nrLanguageID=0)) then
    C'est-a-dire qu'au lieu de nrEncodingID = 1, mettez nrEncodingID in [0,1]

    Est-ce que cela marche maintenant?
    Par-delà nos conceptions du bien et du mal se trouve une prairie. Je te rencontrerai là-bas.

  12. #172
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    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 072
    Points : 15 458
    Points
    15 458
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par circular17 Voir le message
    Pour corriger le probleme, allez dans le paquet LazUtils
    Celle-ci, il fallait la trouver ! Merci beaucoup pour le temps passé à la recherche et bravo car, oui, ça marche, des caractères s'affichent, mais un autre problème apparaît : ce ne sont pas les bons caractères. Ce sont bien des caractères de la police en question, mais pas ceux qui correspondent à la chaîne passée à la procédure TextOut(). J'ai fait un deuxième essai avec une autre police : même symptôme. Bon, laissons tomber, non ? Vous avez déjà assez donné de votre temps. J'ai deux solutions qui fonctionnent : mes anciennes pièces et celles que vous avez trouvées (et qui sont aussi des bitmaps, si j'ai bien compris).

    Pour l'anecdote, j'ai voulu essayer de convertir un pion en array of TPointF : j'ai réalisé que ce n'était pas aussi facile que ce que je croyais, car il faut que les points soient dans l'ordre, ce qui n'est pas une mince affaire.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  13. #173
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 733
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 733
    Points : 15 141
    Points
    15 141
    Par défaut
    Citation Envoyé par Roland Chastain Voir le message
    Celle-ci, il fallait la trouver ! Merci beaucoup pour le temps passé à la recherche et bravo car, oui, ça marche, des caractères s'affichent, mais un autre problème apparaît : ce ne sont pas les bons caractères. Ce sont bien des caractères de la police en question, mais pas ceux qui correspondent à la chaîne passée à la procédure TextOut().
    Ouaip, félicitations !

    De mon côté sous Linux c'est la misère avec Lazarus : impossible de remplir une grille avec les dessins, ça me prend et me rend les caractères bruts, genre je demande un L je devrais avoir un roi noir sur carré noir et j'ai un L
    Pareil pour tous les caractères.
    Mais dans LibreOffice ça fonctionne : je suspecte un plan foireux de conversion UTF8, ou PitchQuality ou un autre truc tordu et bien planqué...

    Citation Envoyé par Roland Chastain Voir le message
    J'ai fait un deuxième essai avec une autre police : même symptôme. Bon, laissons tomber, non ?
    Je sais pas, je sais pas... Vais essayer une autre police, pour voir (c'est rigolo ce truc !)

    Citation Envoyé par Roland Chastain Voir le message
    J'ai deux solutions qui fonctionnent : mes anciennes pièces et celles que vous avez trouvées (et qui sont aussi des bitmaps, si j'ai bien compris).
    C'est peut-être moi qui ne comprend pas, là : ce que j'ai posté (cette grande image "catalogue") oui c'est du bitmap, ça reprend les images du site, mais ces images sont faites avec des polices qui elles, sont vectorielles.
    D'ailleurs les essais que je fais avec Chess Alpha sont assez désolants : ça fonctionne très mal, la police est arrivée avec un fichier rtf d'exemple en taille 18, si on change cette taille tout se décale, beuark !
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  14. #174
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    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 072
    Points : 15 458
    Points
    15 458
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par Jipété Voir le message
    C'est peut-être moi qui ne comprend pas, là : ce que j'ai posté (cette grande image "catalogue") oui c'est du bitmap, ça reprend les images du site, mais ces images sont faites avec des polices qui elles, sont vectorielles.
    Nous sommes d'accord. Je voulais parler des images que circular17 a postées plus haut dans la discussion. Pardon pour l'ambiguïté de mon message.

    Autrement, les polices True Type, sous Windows au moins, d'après les expériences que j'ai faites, ça fonctionne très bien, dans une page HTML, dans un programme Win32 OWL, dans un label Delphi... La difficulté est que chaque auteur utilise sa propre convention. Mais une grande partie des polices disponibles sur le site que j'ai indiqué sont du même auteur (Armando H. Marroquin). Je joins quelques échantillons si vous voulez y jeter un œil.

    Maintenant, ce que je voulais dire, c'est qu'apparemment ça ne fonctionne pas avec BGRABitmap pour le moment, donc je pense rester sur les solutions qui fonctionnent avec BGRABitmap.
    Fichiers attachés Fichiers attachés
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  15. #175
    Membre confirmé

    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 140
    Points : 623
    Points
    623
    Par défaut
    Citation Envoyé par Roland Chastain Voir le message
    Celle-ci, il fallait la trouver ! Merci beaucoup pour le temps passé à la recherche et bravo car, oui, ça marche, des caractères s'affichent, mais un autre problème apparaît : ce ne sont pas les bons caractères. Ce sont bien des caractères de la police en question, mais pas ceux qui correspondent à la chaîne passée à la procédure TextOut(). J'ai fait un deuxième essai avec une autre police : même symptôme.
    Effectivement.

    Ben en fait, c'est un bug que cela fait longtemps que j'aimerais regler mais je sais pas trop comment faire.
    Je suppose que cela se passe dans cette unite qui determine les tables de correspondances entre glyphs et caracteres:
    https://sourceforge.net/p/lazarus/co...ils/ttcmap.pas

    Vais essayer une autre police, pour voir (c'est rigolo ce truc !)
    Si tu y comprends quelque chose, cela m'interesse.

    Pour l'anecdote, j'ai voulu essayer de convertir un pion en array of TPointF : j'ai réalisé que ce n'était pas aussi facile que ce que je croyais, car il faut que les points soient dans l'ordre, ce qui n'est pas une mince affaire.
    Ah ben oui, faut que cela forme un polygone.
    Par-delà nos conceptions du bien et du mal se trouve une prairie. Je te rencontrerai là-bas.

  16. #176
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 733
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 733
    Points : 15 141
    Points
    15 141
    Par défaut
    Bonsoir,
    Citation Envoyé par circular17 Voir le message
    Effectivement.

    Ben en fait, c'est un bug que cela fait longtemps que j'aimerais regler mais je sais pas trop comment faire.
    Je suppose que cela se passe dans cette unite qui determine les tables de correspondances entre glyphs et caracteres:
    https://sourceforge.net/p/lazarus/co...ils/ttcmap.pas
    C'est bizarre ton truc, là, qui renvoie sur une quantité phénoménale de fichiers qui pour certains datent de... 1996 ! Bientôt 20 ans !
    T'es sûr que c'est toujours d'actualité ?
    Sinon, le problème de ce truc (comme bien souvent avec Lazarus), c'est que par exemple le dossier "docs" est désespérément vide , et ce ne sont pas les commentaires au début des .pas qui vont aider.
    Et le dossier examples n'en contient qu'un ! C'était pas la peine de le mettre au pluriel

    Citation Envoyé par circular17 Voir le message
    Citation Envoyé par Jipété
    Vais essayer une autre police, pour voir (c'est rigolo ce truc !)
    Si tu y comprends quelque chose, cela m'interesse.
    Bah, c'est pas bien compliqué : les auteurs se basent sur une police toute simple et remplacent certains caractères par le dessin des pièces, des cases, des bordures, etc.

    Récupère la police Chess Alpha et jette un œil au fichier .rtf, c'est assez sympathique (sauf le plateau qui est chez moi avec LibreOffice en vrac ! Essaye Chess Merida pour un beau plateau).

    Ce que je n'arrive pas à faire, c'est d'afficher dans une Stringgrid les dessins des pièces, par exemple ce
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      sgChess.Font.Name :='Chess Merida';
      sgChess.Font.Size := 24;
      sgChess.Font.Pitch := fpFixed;
      sgChess.Cells[0,1] := 'm';
    devrait m'afficher un cavalier noir sur case blanche et ça m'affiche m, merdum ! Copie d'écran de Libroffice, avec M pour le fond noir, et j'ai gardé le curseur pour bien montrer qu'on a affaire à des caractères bêtement carrés, pour les pièces :
    Nom : libroffice.png
Affichages : 716
Taille : 5,8 Ko

    Je pense (àmha) que ça pourrait être super-cool de jouer avec ça, mais faut faire fonctionner la stringgrid...
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  17. #177
    Membre confirmé

    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 140
    Points : 623
    Points
    623
    Par défaut
    Citation Envoyé par Jipété Voir le message
    Bah, c'est pas bien compliqué : les auteurs se basent sur une police toute simple et remplacent certains caractères par le dessin des pièces, des cases, des bordures, etc.
    Non non c'est pas cela ma question. Ce que je ne comprends pas, c'est comment les valeurs des caracteres sont decalees et qui font que ce ne sont pas les bons glyphs qui s'affichent.

    Au sujet de faire du tri dans les repertoires de Lazarus, ben pourquoi pas, faut faire un patch et le mettre sur le bug tracker et en mettant un blabla d'explication.
    Par-delà nos conceptions du bien et du mal se trouve une prairie. Je te rencontrerai là-bas.

  18. #178
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 733
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 733
    Points : 15 141
    Points
    15 141
    Par défaut
    Yop !

    Citation Envoyé par circular17 Voir le message
    Pour corriger le problème, allez dans le paquet LazUtils (qui est nécessaire pour BGRABitmap), puis dans l'unite EasyLazFreeType.

    Vers la ligne 1350, corrigez comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
          { check for Microsoft, Unicode, English }
          if ((nrPlatformID=3) and (nrEncodingID in[0,1]) and
             ((nrLanguageID=$0409) or (nrLanguageID=$0809) or
              (nrLanguageID=$0c09) or (nrLanguageID=$1009) or
              (nrLanguageID=$1409) or (nrLanguageID=$1809))) or
            { or for Unicode, English }
            ((nrPlatformID=0) and
             (nrLanguageID=0)) then
    C'est-a-dire qu'au lieu de nrEncodingID = 1, mettez nrEncodingID in [0,1]
    Fichtre, on n'a pas la même version !

    Faut dire aussi que j'ai installé la 1.4.0 c't'aprème, suite à des déboires avec les tutos BGRA (ils auraient pu préciser la version nécessaire, quand même !)
    Bref, chez moi c'est à la ligne 1696 qu'il faut corriger.

    Cependant en ce qui me concerne, avec mon Linux je suis coincé, le dernier tuto BGRA (Utiliser les polices avec LazFreeType intégré à Lazarus) part en erreur, incapable qu'il est de récupérer la famille de la police avec laquelle j'essaye de travailler : "Font family not found" dans la procedure TFreeTypeFont.UpdateFace(const AName: String); , là (ligne 800 chez moi) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        familyItem := Collection.Family[AName];
        if familyItem = nil then
          raise exception.Create('Font family not found');
    Et ça, que la police soit installée ou pas, qu'elle soit exotique ou parfaitement classique, TrueType ou OpenType... Je ne vais pas aller bien loin.


    Citation Envoyé par Roland Chastain Voir le message
    Celle-ci, il fallait la trouver ! Merci beaucoup pour le temps passé à la recherche et bravo car, oui, ça marche, des caractères s'affichent, mais un autre problème apparaît : ce ne sont pas les bons caractères. Ce sont bien des caractères de la police en question, mais pas ceux qui correspondent à la chaîne passée à la procédure TextOut().
    Tu nous dis que tu réussis à afficher quelque chose mais tu ne nous dis pas quoi : des lettres mais pas les bonnes (genre clavier azerty défini en qwerty), ou des dessins de pièces mais pas les bons ?

    Ce matin j'ai fait des essais dans une MV Windows XP ; c'est pas pareil que sous Linux (à se demander si les tutos BGRA ont été testés sous Linux...) :
    voici d'abord une copie d'écran de 2 petits outils que je m'étais bricolé sous D7/W2000, et ce qui est rigolo c'est que la routine de détection des polices est exactement la même (je n'allais pas réinventer la roue en passant d'un outil à l'autre) et pourtant le rendu (qui fait appel à un bête TRichEdit dans les deux progs) n'est pas le même : un coup il y a deux lignes de dessins de pièces, un coup une seule !
    Va comprendre...
    Nom : loadfontshowfont.jpg
Affichages : 888
Taille : 91,7 Ko

    Ensuite je vous présente un petit essai réalisé avec Wordpad, comme quoi ça fonctionne, hein :
    Nom : wordpad.jpg
Affichages : 884
Taille : 92,5 Ko

    Ce qui est intéressant en examinant la boîte de dialogue, c'est qu'on voit noté "Symbole" dans la zone "Script", et qu'en farfouillant dans le SDK de Microsoft, la solution au problème pour les Windowsiens pourrait bien se cacher dans la propriété lfCharset de la structure LogFont.
    Mais je ne peux rien tester...

    Dernière copie d'écran sous LibreOffice (retour sous Linux) où l'on voit bien le dessin de certaines pièces (bordures du plateau) dans la liste déroulante du choix de police :
    Nom : fonts_LO.png
Affichages : 896
Taille : 48,1 Ko

    Ça m'énerve, ça m'énerve !... Si LibreOffice y arrive, je devrais pouvoir y arriver ; le souci c'est le manque de doc, j'avoue ne pas savoir où chercher maintenant, après avoir épuisé les possibilités des compos BGRA et l'API TextOut, je suis un peu sec pour continuer.

    Dommage, car je suis sûr qu'on aurait pu faire de grandes choses avec ces polices... Démo avec quelques lettres à taper au clavier pour avoir toutes les pièces majeures noires :
    Nom : essai_merida.jpg
Affichages : 759
Taille : 10,7 Ko
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  19. #179
    Membre confirmé

    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 140
    Points : 623
    Points
    623
    Par défaut
    Ben justement, la question que je me pose est de savoir quelles corrections apporter au paquet LazUtils pour que les polices FreeType soient rendues correctement.

    Concernant les tutoriels, pusiqu'en gros je suis le seul a les ecrire, a faire la documentation, tout comme je suis en gros le seul a ecrire BGRABitmap, eh bien s'il y a une erreur, c'est forcement ma faute.

    Concernant la ligne de la correction de LazFreeType, je trouve ta remarque bizarre. Cela n'a rien a voir avec tutoriels mais avec la version de Lazarus que j'utilise en ce moment.

    Au sujet d'utiliser les polices FreeType, cela ne change rien qu'elles soient installees ou non. Comme cela fonctionne pour le moment, c'est programme qui fournit les fichiers TTF necessaires, le cas le plus simple etant que ces fichiers soient a cote de l'executable.

    Concernant le bug dont je parle, comme je l'ai mentionne plus haut, l'erreur se trouve probablement dans le fichier suivant:
    https://sourceforge.net/p/lazarus/co...ils/ttcmap.pas

    J'ai tente de comprendre ce qu'il y a dedans, cependant je n'ai pas reussi. C'est assez complique, j'ai trouve peu de documentation pour FreeType sur cette question, etc.

    Sinon, je suis un peu confus que tu parles de string grid ou de memo rich edit. Cela n'est pas gere par BGRABitmap puisque ce sont des composants de Lazarus.
    Par-delà nos conceptions du bien et du mal se trouve une prairie. Je te rencontrerai là-bas.

  20. #180
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 733
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 733
    Points : 15 141
    Points
    15 141
    Par défaut
    Bonsoir,
    Citation Envoyé par circular17 Voir le message
    Concernant la ligne de la correction de LazFreeType, je trouve ta remarque bizarre. Cela n'a rien a voir avec tutoriels mais avec la version de Lazarus que j'utilise en ce moment.
    Je n'ai pas parlé des tutos à propos de la correction, juste que j'ai installé la 1.4.0 parce que l'exemple du tuto ne compilait pas, et qu'après cette install j'informais les lecteurs que ta correction se trouvait à un autre n° de ligne.

    Citation Envoyé par circular17 Voir le message
    Au sujet d'utiliser les polices FreeType, cela ne change rien qu'elles soient installees ou non. Comme cela fonctionne pour le moment, c'est programme qui fournit les fichiers TTF necessaires, le cas le plus simple etant que ces fichiers soient a cote de l'executable.
    Je ne sais pas, je ne sais pas : ce que je sais c'est que sous Windows il faut qu'elles soient installées, définitivement et on les retrouve dans Windows\Fonts, ou temporairement mais il faudra jouer avec l'api AddFontResource pour que la police soit disponible pour les applis (et c'est ce que fait mon petit programme "Loadfont" dont j'ai publié un bout de copie d'écran).
    Et sous Linux, en voyant ces deux lignes dans le tuto :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      FFontCollection.AddFile('Arial.ttf');
      SetDefaultFreeTypeFontCollection(FFontCollection);
    je me suis dit que ça devait être le même plan, pour installer temporairement un fichier .ttf et pouvoir l'utiliser : la première ligne charge le fichier, la seconde le rend disponible aux applis.
    Enfin, c'est comme ça que je l'interprète.

    Citation Envoyé par circular17 Voir le message
    Sinon, je suis un peu confus que tu parles de string grid ou de memo rich edit. Cela n'est pas gere par BGRABitmap puisque ce sont des composants de Lazarus.
    C'est parce que j'essaye dans toutes les directions -- et que je n'arrive à rien !

    Genre j'ai passé la soirée à fouiller dans les dossiers de fpc (un endroit où je ne vais jamais) à la recherche de doc sur gtk2, pango, cairo et il n'y a rien de chez rien, ou alors juste du code sans aucune explication...
    J'ai même trouvé parfois des dossiers "examples" vides !
    Et j'ai eu ça lors de ma première tentative de compil d'un exemple gtk2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    # fpc gtk_demo.pas 
    Free Pascal Compiler version 2.6.2 [2013/03/17] for i386
    Copyright (c) 1993-2012 by Florian Klaempfl and others
    Target OS: Linux for i386
    Compiling gtk_demo.pas
    drawingarea.inc(41,28) Error: Incompatible type for arg no. 3: Got "Boolean32", expected "LongInt"
    drawingarea.inc(88,28) Error: Incompatible type for arg no. 3: Got "Boolean32", expected "LongInt"
    drawingarea.inc(202,36) Error: Incompatible type for arg no. 3: Got "Boolean32", expected "LongInt"
    textview.inc(64,3) Warning: Converting constant real value to double for C variable argument, add explicit typecast to prevent this.
    textview.inc(67,3) Warning: Converting constant real value to double for C variable argument, add explicit typecast to prevent this.
    gtk_demo.pas(1091) Fatal: There were 3 errors compiling module, stopping
    Fatal: Compilation aborted
    Ça décourage...

    Et gogol n'est d'aucun secours : on trouve gtk2 et Perl, et Python, mais avec Pascal, rien ! Nada...

    D'autant plus décourageant que comme je l'ai montré, Wordpad et LibreOffice sont capables d'afficher ces polices.

    Et pourquoi j'ai parlé plus haut de pango et cairo ? Ben parce que puisque LibreOffice est capable de dessiner un échiquier et ses pièces avec ces foutues polices, je me suis dit que j'allais jeter un œil à ses sources, ce qui est totalement contre-productif puisque, encore une fois dans ce monde merveilleux, le niveau de doc est égal à 0. Alors, se retrouver face à 420 Mo de fichiers source sans savoir où et quoi regarder, ouch
    Mais j'ai cependant découvert des dossiers portant les noms ci-dessus, et je me suis souvenu que ça concernait des sortes de couteaux suisses pour le rendering de texte et autres manipulations graphiques, alors je suis allé y voir, et j'y ai perdu mon temps...
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

Discussions similaires

  1. [Flash Pascal] Projet d'un programme permettant de visualiser une position du jeu des échecs
    Par Roland Chastain dans le forum Flash Pascal
    Réponses: 11
    Dernier message: 21/06/2015, 09h05
  2. Projet Jeu d'échec
    Par Layla dans le forum Langage
    Réponses: 10
    Dernier message: 23/12/2010, 13h06
  3. Jeu d'échec borland soap
    Par rpoulin dans le forum Web & réseau
    Réponses: 2
    Dernier message: 20/10/2005, 05h02
  4. Help ! Programmer un jeu vidéo
    Par Jay Bee dans le forum DirectX
    Réponses: 7
    Dernier message: 18/03/2004, 18h38
  5. Help ! Programmer un jeu vidéo...
    Par Jay Bee dans le forum OpenGL
    Réponses: 3
    Dernier message: 05/03/2004, 15h34

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