Bonjour
Je me demandais si c'était possible de se creer une police et de l'utiliser dans un programme avec freepascal.
Ainsi on pourrait afficher un caractère que l'on aurait travaillé auparavant pixel par pixel.
Merci d'avance
Bonjour
Je me demandais si c'était possible de se creer une police et de l'utiliser dans un programme avec freepascal.
Ainsi on pourrait afficher un caractère que l'on aurait travaillé auparavant pixel par pixel.
Merci d'avance
Bonjour,
Votre question manque de contexte : une police pour utiliser avec quoi ?
@++
ben en fait au lieu d'avoir les caractères normals, genre chr(35) = # on pourrait remplacer par autre chose de plus graphique : comme un sourire ou une roue de vélo ( petite! ) . En fait, comment on accéde à la table ascii et comment on peut modifier celle ci pour avoir des caractères plus simpa. Et si c'est pas possible quel autre moyen?
J'espère que c'est plus clair
sinon je réexpliquerais
Merci d'avance
Xavier
La solution sous DOS, on utilise une fonction de l'interruption 10h. Voici un code (qui est très vieux) :
Où Table est le numéro de la table à changer (= 0), Ascii le code ascii du caractère à changer, et Fonte un pointer vers un tableau de 16 bytes...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 MOV AX,1100h; MOV BL,Table; MOV BH,0Fh; MOV CX,1h; MOV DX,Ascii; PUSH BP; LES BP,Fonte; INT 10h; POP BP;
PS: je ne peux pas être tenu comme responsable si ton ordinateur prend feu...
M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal
Bonjour
voici la traduction en programmation systeme sous TP
mais pour faire un dessin , y a du boulot
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 registre.ax:=$1100;..........fonction 11h (ah) sous fonction 00h (al) registre.bh:=14;...............hauteur du caractère en points registre.bl:=0;.................numéro de la table registre.cx:=255;.............nombre de caractère(s) à traiter registre.dx:=0;................numéro du premier caractère à traiter registre.es:=seg(matrice);.adresse de segment de la table registre.bp:=ofs(matrice);.adresse d'offset de la table intr($10,registre);............interruption 10h vidéo![]()
![]()
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager