hola jhonny:
Tengo algo en modo texto , lo puedes adaptar para que parezca mas a
autentico medidor tester ,es simplemente un visor de digitos que se mueven hasta alcanzar su valor , este valor se puede definir dentro del programa u obtenerlo mediante un readln o un fichero de datos .
Los digitos del array aqui no se ven correctamente , pega el texto con el block de notas y pegalo y crea un fichero de texto txt luego renombralo a .pas
este programa funciona perfectamente bajo FREE_Pascal y deberia hacerlo bajo TP pero no lo he probado bajo este ultimo.
Este programa lo he creado reutilizando digitos de otro programa que no tiene nada que ver con este .Esto solo es una idea que deberás adaptar a tus necesidades espero que te valga el concepto o la idea en sí .
________________________________________________________
uses crt;
var a:integer; { contador de bucles}
var retardo:integer;
const digit:array[1..3]of string=(
( 'ÚÄ¿  ÚÄ¿ÚĿ ÂÚÄ¿ÚÄ¿ÚÄ¿ÚÄ¿ÚÄ¿'),
( '³ ³ ³ ÚÄÙ Ä´ÀÄ´ÀÄ¿ÚÄ´ ³ÃÄ´ÀÄ´'),
( 'ÀÄÙ Á ÀÄÙÀÄÙ ÁÀÄÙÀÄÙ ÁÀÄÙ Á')
);
var valor:string;
digito1:byte;
digito2:byte;
digito3:byte;
digito4:byte;
err:integer;
{////////////////////////////////////////////////////////////////////////////}
procedure writedigxy(xx,yy,dig:byte;punto:boolean);
var dd:integer;
aa:byte;
begin
dd:=(dig*3);
gotoxy(xx,yy);
for aa:=1 to 3 do write(digit[1][dd+aa]);
gotoxy(xx,yy+1);
for aa:=1 to 3 do write(digit[2][dd+aa]);
gotoxy(xx,yy+2);
for aa:=1 to 3 do write(digit[3][dd+aa]);
if punto then write(' Ü');
end;
{////////////////////////////////////////////////////////////////////////////}
begin
clrscr;
textcolor(8);
retardo:=100; { milisegundos de espera }
valor:='380.0'; { que ser mostrado si no introducimos nada }
writeln('introducca tres digitos un punto y otro digito' );
readln(valor); { recogemos el nuevo dato en la variable valor }
clrscr;
{ obtenemos los numeros de la cadena obtenida }
val(valor[1],digito1,err);
val(valor[2],digito2,err);
val(valor[3],digito3,err);
val(valor[5],digito4,err);
{ salida falsa 3 creos en gris }
writedigxy(20,1,0,false);
writedigxy(24,1,0,false);
writedigxy(27,1,0,true); { mostramos el decimal }
writedigxy(32,1,0,false);
for a:=9 downto digito1 do
begin
textcolor(3); writedigxy(20,1,a,false);
delay(retardo);
end;
for a:=9 downto digito2 do
begin
textcolor(3); writedigxy(24,1,a,false);
delay(retardo);
end;
{ este contiene el punto decimal }
for a:=9 downto digito3 do
begin
textcolor(3); writedigxy(27,1,a,true);
delay(retardo);
end;
{ este es el digito decimal }
for a:=9 downto digito4 do
begin
textcolor(3); writedigxy(32,1,a,false);
delay(retardo);
end;