La Web del Programador: Comunidad de Programadores
 
    Pregunta:  64874 - COMO CORRER PROGRAMAS DE TURBO 7 EN WINDOWS7 EN MODO GRAFICO
Autor:  Luis Lopez
Tengo programas realizados en Turbo pascal 7.0 pero cuando los quiero ejecutar en windows XP, Vista ó Windows 7 este no funciona, solo funciona al principio en la parte de modo texto, al pasar a modo gráfico se bloquea o simplemente se interrumpe. Existe algun modo de hacer que estos programas funcionen en este modo grafico sobre windows7?

  Respuesta:  ramon
[El archivo graph debe de estar en el directorio units y el egavga.bgi en
directorio bgi]

[Esta en desarrollo Pero funciona ]
[tienes el sistema gráfico trabajando en windows 7 sin problema]


program pruefrec;
uses
graph, dos, crt;
const
dividen : real = 1.0;
homio : array[1..8] of string[8] = ('00111100',
'01111110',
'11000011',
'11000011',
'11000011',
'01100110',
'00100100',
'01100110');

Gray : FillPatternType = ($AA, $55, $AA,
$55, $AA, $55, $AA, $55);

fondo : array[0..1] of FillPatternType = (
($AA, $55, $AA, $55, $AA, $55, $AA, $55),
($ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff));

raton : array[1..17] of string[16] =
('1100000000000000',
'1810000000000000',
'1881000000000000',
'1888100000000000',
'1888810000000000',
'1888881000000000',
'1888888100000000',
'1888888810000000',
'1888888881000000',
'1888881111100000',
'1881881000000000',
'1118188100000000',
'1100188100000000',
'0000018810000000',
'0000018810000000',
'0000001810000000',
'0000001110000000');

Var
balor1, balor2, total, conden, conden2 ,resit1, resit2 : real;
pulsada : char;
por, resul, dato : real;
cuenta : string[16];
d, g, x, y : integer;
yy, xr, yr, h, v : integer;
sal : boolean;
OldPattern : FillPatternType;
driver, mode : integer;
cursor : pointer;
ocupa : word;
texgraf : byte;
regs : registers;
esist : boolean;
final, mouse, activo : boolean;

procedure initmouse(como : byte);
begin
texgraf := como;
regs.ax := $00;
intr($33,regs);
esist := regs.ax <> $00;
if texgraf = 1 then
if not mouse then
mouse := true;
end;

function posx_raton : integer;
begin
regs.ax := $03;
intr($33,regs);
posx_raton := regs.cx;
end;

function posy_raton : integer;
begin
regs.ax := $03;
intr($33,regs);
posy_raton := regs.dx;
end;

procedure pon_posicion_raton(xg, yg : word);
begin
regs.ax := $04;
regs.cx := xg;
regs.dx := yg;
intr($33,regs);
end;

function boton_raton : word;
begin
boton_raton := 0;
regs.ah := $00;
regs.al := $03;
intr($33,regs);
boton_raton := regs.bx
end;

function realstring(n : real) : string;
var
s : string[16];
begin
fillchar(s,17,' ');
s[0] := chr(16);
str(n:10:10,s);
realstring := s;
end;

function realstring2(n : real) : string;
var
s : string[16];
begin
fillchar(s,17,' ');
s[0] := chr(16);
str(n:10:3,s);
realstring2 := s;
end;

function stringint(s : string) : integer;
var
n : integer;
error : integer;
begin
stringint := 0;
val(s,n,error);
stringint := n;
end;

procedure frecuencia2(herz : real);
var
sacafre : integer;
begin
dato := herz;
resul := dividen / dato;
cuenta := realstring(resul);
sal := false;
y := 0;
x := 1;
repeat
if cuenta[x] = '0' then
begin
inc(y);
end;
if cuenta[x] > '0' then
begin
sal := true;
end;
inc(x);
until (x > 16) or (sal = true);
sacafre := 1;
case y of
1 : begin
sacafre := 7;
por := 10;
end;
2 : begin
sacafre := 6;
por := 100;
end;
3 : begin
sacafre := 5;
por := 1000;
end;
4 : begin
sacafre := 4;
por := 10000;
end;
5 : begin
sacafre := 3;
por := 100000;
end;
6,7,8,9 : begin
sacafre := 2;
por := 1000000;
end;
end;
rectangle((getmaxx - 110) - 54,108,(getmaxx - 110) + 50,126);
SetFillPattern(Gray, 3);
bar((getmaxx - 110) - 53,109,(getmaxx - 110) + 49,125);
SetFillPattern(Gray, 0);
resul := resul * por;
x := round(resul);
if x < 1 then
x := 2;
g := 0;
d := 0;
for y := 1 to sacafre do
begin
case x of
1 : begin
outtextxy(((getmaxx - 110) - 50) + d * 8,110 + g * 8,'-');
end;
2 : begin
outtextxy(((getmaxx - 110) - 50) + d * 8,110 + g * 8,'--');
end;
3 : begin
outtextxy(((getmaxx - 110) - 50) + d * 8,110 + g * 8,'---');
end;
4 : begin
outtextxy(((getmaxx - 110) - 50) + d * 8,110 + g * 8,'----');
end;
5 : begin
outtextxy(((getmaxx - 110) - 50) + d * 8,110 + g * 8,'-----');
end;
6 : begin
outtextxy(((getmaxx - 110) - 50) + d * 8,110 + g * 8,'------');
end;
end;
d := d + x;
inc(g);
if g > 1 then
begin
g := 0;
end;
end;
end;


function intstring(n : integer) : string;
var
s : string[8];
begin
fillchar(s,9,' ');
s[0] := chr(8);
str(n,s);
intstring := s;
end;

function wordstring(n : word) : string;
var
s : string[15];
begin
fillchar(s,16,' ');
s[0] := chr(15);
str(n,s);
wordstring := s;
end;

function longntstring(n : longint) : string;
var
s : string[16];
begin
fillchar(s,17,' ');
s[0] := chr(16);
str(n,s);
longntstring := s;
end;

function stringreal(s : string) : real;
var
n : real;
error : integer;
begin
stringreal := 0.1;
val(s,n,error);
stringreal := n;
end;

procedure SG3525A(xl, yl : integer);
var
li : integer;
begin
setcolor(15);
rectangle(xl,yl,xl + 110,yl + 160);
line(xl,yl + 10,xl - 20,yl + 10);
outtextxy(xl + 8,yl + 6,'1');
line(xl,yl + 30,xl - 20,yl + 30);
outtextxy(xl + 8,yl + 26,'2');
line(xl,yl + 50,xl - 20,yl + 50);
outtextxy(xl + 8,yl + 46,'3');
line(xl,yl + 70,xl - 20,yl + 70);
outtextxy(xl + 8,yl + 66,'4');
line(xl,yl + 90,xl - 20,yl + 90);
outtextxy(xl + 8,yl + 86,'5');
line(xl,yl + 110,xl - 20,yl + 110);
outtextxy(xl + 8,yl + 106,'6');
line(xl,yl + 130,xl - 20,yl + 130);
outtextxy(xl + 8,yl + 126,'7');
line(xl,yl + 150,xl - 20,yl + 150);
outtextxy(xl + 8,yl + 146,'8');

line(xl + 110,yl + 10,xl + 130,yl + 10);
outtextxy(xl + 92,yl + 6,'16');
line(xl + 110,yl + 30,xl + 130,yl + 30);
outtextxy(xl + 92,yl + 26,'15');
line(xl + 110,yl + 50,xl + 130,yl + 50);
outtextxy(xl + 92,yl + 46,'14');
line(xl + 110,yl + 70,xl + 130,yl + 70);
outtextxy(xl + 92,yl + 66,'13');
line(xl + 110,yl + 90,xl + 130,yl + 90);
outtextxy(xl + 92,yl + 86,'12');
line(xl + 110,yl + 110,xl + 130,yl + 110);
outtextxy(xl + 92,yl + 106,'11');
line(xl + 110,yl + 130,xl + 130,yl + 130);
outtextxy(xl + 92,yl + 126,'10');
line(xl + 110,yl + 150,xl + 130,yl + 150);
outtextxy(xl + 92,yl + 146,'9');
outtextxy(xl + 28,yl + 76,'SG3525A');
setcolor(11);
rectangle(xl - 20,yl + 105,xl - 50,yl + 115);
outtextxy(xl - 42,yl + 107,'RT');
line(xl - 50,yl + 110,xl - 70,yl + 110);
line(xl - 70,yl + 110,xl - 70,yl + 120);
line(xl - 80,yl + 120,xl - 60,yl + 120);
line(xl - 20,yl + 90,xl - 100,yl + 90);
line(xl - 100,yl + 90,xl - 100,yl + 150);
line(xl - 110,yl + 150,xl - 90,yl + 150);
line(xl - 110,yl + 160,xl - 90,yl + 160);
line(xl - 100,yl + 160,xl - 100,yl + 180);
line(xl - 90,yl + 180,xl - 110,yl + 180);
outtextxy(xl - 130,yl + 152,'CT');
rectangle(xl - 20,yl + 125,xl - 50,yl + 135);
outtextxy(xl - 42,yl + 127,'RD');
line(xl - 50,yl + 130,xl - 100,yl + 130);
setcolor(15);
end;

procedure SG3524A(xl, yl : integer);
var
li : integer;
begin
setcolor(15);
rectangle(xl,yl,xl + 110,yl + 160);
line(xl,yl + 10,xl - 20,yl + 10);
outtextxy(xl + 8,yl + 6,'1');
line(xl,yl + 30,xl - 20,yl + 30);
outtextxy(xl + 8,yl + 26,'2');
line(xl,yl + 50,xl - 20,yl + 50);
outtextxy(xl + 8,yl + 46,'3');
line(xl,yl + 70,xl - 20,yl + 70);
outtextxy(xl + 8,yl + 66,'4');
line(xl,yl + 90,xl - 20,yl + 90);
outtextxy(xl + 8,yl + 86,'5');
line(xl,yl + 110,xl - 20,yl + 110);
outtextxy(xl + 8,yl + 106,'6');
line(xl,yl + 130,xl - 20,yl + 130);
outtextxy(xl + 8,yl + 126,'7');
line(xl,yl + 150,xl - 20,yl + 150);
outtextxy(xl + 8,yl + 146,'8');

line(xl + 110,yl + 10,xl + 130,yl + 10);
outtextxy(xl + 92,yl + 6,'16');
line(xl + 110,yl + 30,xl + 130,yl + 30);
outtextxy(xl + 92,yl + 26,'15');
line(xl + 110,yl + 50,xl + 130,yl + 50);
outtextxy(xl + 92,yl + 46,'14');
line(xl + 110,yl + 70,xl + 130,yl + 70);
outtextxy(xl + 92,yl + 66,'13');
line(xl + 110,yl + 90,xl + 130,yl + 90);
outtextxy(xl + 92,yl + 86,'12');
line(xl + 110,yl + 110,xl + 130,yl + 110);
outtextxy(xl + 92,yl + 106,'11');
line(xl + 110,yl + 130,xl + 130,yl + 130);
outtextxy(xl + 92,yl + 126,'10');
line(xl + 110,yl + 150,xl + 130,yl + 150);
outtextxy(xl + 92,yl + 146,'9');
outtextxy(xl + 28,yl + 76,'SG3524A');
setcolor(12);
rectangle(xl - 30,yl + 105,xl - 60,yl + 115);
outtextxy(xl - 52,yl + 107,'RT');
line(xl - 60,yl + 110,xl - 120,yl + 110);
line(xl - 120,yl + 110,xl - 120,yl + 130);
line(xl - 110,yl + 130,xl - 130,yl + 130);
line(xl - 30,yl + 110,xl - 20,yl + 110);
line(xl - 50,yl + 130,xl - 70,yl + 130);
line(xl - 70,yl + 130,xl - 70,yl + 140);
line(xl - 80,yl + 140,xl - 60,yl + 140);
line(xl - 50,yl + 130,xl - 20,yl + 130);
line(xl - 80,yl + 150,xl - 60,yl + 150);
line(xl - 70,yl + 150,xl - 70,yl + 170);
line(xl - 80,yl + 170,xl - 60,yl + 170);
outtextxy(xl - 98,yl + 141,'CT');
setcolor(15);
end;

procedure LM494CN(xl, yl : integer);
var
li : integer;
begin
setcolor(15);
rectangle(xl,yl,xl + 110,yl + 160);
line(xl,yl + 10,xl - 20,yl + 10);
outtextxy(xl + 8,yl + 6,'1');
line(xl,yl + 30,xl - 20,yl + 30);
outtextxy(xl + 8,yl + 26,'2');
line(xl,yl + 50,xl - 20,yl + 50);
outtextxy(xl + 8,yl + 46,'3');
line(xl,yl + 70,xl - 20,yl + 70);
outtextxy(xl + 8,yl + 66,'4');
line(xl,yl + 90,xl - 20,yl + 90);
outtextxy(xl + 8,yl + 86,'5');
line(xl,yl + 110,xl - 20,yl + 110);
outtextxy(xl + 8,yl + 106,'6');
line(xl,yl + 130,xl - 20,yl + 130);
outtextxy(xl + 8,yl + 126,'7');
line(xl,yl + 150,xl - 20,yl + 150);
outtextxy(xl + 8,yl + 146,'8');

line(xl + 110,yl + 10,xl + 130,yl + 10);
outtextxy(xl + 92,yl + 6,'16');
line(xl + 110,yl + 30,xl + 130,yl + 30);
outtextxy(xl + 92,yl + 26,'15');
line(xl + 110,yl + 50,xl + 130,yl + 50);
outtextxy(xl + 92,yl + 46,'14');
line(xl + 110,yl + 70,xl + 130,yl + 70);
outtextxy(xl + 92,yl + 66,'13');
line(xl + 110,yl + 90,xl + 130,yl + 90);
outtextxy(xl + 92,yl + 86,'12');
line(xl + 110,yl + 110,xl + 130,yl + 110);
outtextxy(xl + 92,yl + 106,'11');
line(xl + 110,yl + 130,xl + 130,yl + 130);
outtextxy(xl + 92,yl + 126,'10');
line(xl + 110,yl + 150,xl + 130,yl + 150);
outtextxy(xl + 92,yl + 146,'9');
outtextxy(xl + 28,yl + 76,'LM494CN');
setcolor(13);
rectangle(xl - 30,yl + 105,xl - 60,yl + 115);
outtextxy(xl - 52,yl + 107,'RT');
line(xl - 60,yl + 110,xl - 90,yl + 110);
line(xl - 30,yl + 110,xl - 20,yl + 110);
line(xl - 90,yl + 110,xl - 90,yl + 130);
line(xl - 80,yl + 130,xl - 100,yl + 130);
line(xl - 130,yl + 90,xl - 20,yl + 90);
line(xl - 130,yl + 90,xl - 130,yl + 120);
line(xl - 140,yl + 120,xl - 120,yl + 120);
line(xl - 140,yl + 130,xl - 120,yl + 130);
outtextxy(xl - 160,yl + 122,'CT');
line(xl - 130,yl + 130,xl - 130,yl + 150);
line(xl - 140,yl + 150,xl - 120,yl + 150);
setcolor(15);
end;

procedure presentahomio(xo, yo : integer);
var
oo, mm : integer;
begin
for oo := 1 to 8 do
for mm := 1 to 8 do
begin
if homio[oo][mm] = '1' then
begin
putpixel(xo + mm,yo + oo,15);
end;
end;
end;

procedure boton_menu(xm, ym, xxm, yym : integer; estado : boolean;
fon : integer; titulo : string);
var
m1, m2 : integer;
color3, color2 : byte;
begin
if estado = true then
begin
color2 := 7;
color3 := 15;
end
else
begin
color2 := 15;
color3 := 7;
end;
for m1 := 0 to 4 do
begin
setcolor(color2);
line(xm + m1,ym + m1,xxm - m1,ym + m1);
line(xm + m1,ym + m1,xm + m1,yym - m1);
setcolor(color3);
line(xxm - m1,ym + m1,xxm - m1,yym - m1);
line(xm + m1,yym - m1,xxm - m1,yym - m1);
end;
setcolor(15);
setfillpattern(fondo[1],fon);
bar(xm + 5,ym + 5,xxm - 5,yym - 5);
setfillpattern(fondo[1],0);
setcolor(14);
outtextxy(xm + 8,ym + 8,titulo);
setcolor(15);
end;

function edita_entrada(xe, ye : integer) : real;
var
tecla : char;
texto : string[15];
cont : integer;
valor : word;
begin
edita_entrada := 0.0;
setfillpattern(fondo[1],10);
bar(xe,ye,xe + 8,ye + 8);
cont := 1;
fillchar(texto,16,' ');
texto[0] := chr(15);
repeat
tecla := readkey;
if tecla = #0 then
valor := word(ord(readkey)) shl 8
else
valor := ord(upcase(tecla));

if valor in [44,46,48..57] then
begin
setfillpattern(fondo[1],1);
bar((xe - 8) + (cont * 8),ye,((xe - 8) + (cont * 8)) + 8,ye + 8);
texto[0] := chr(cont);
texto[cont] := tecla;
outtextxy((xe - 8) + (cont * 8),ye,texto[cont]);
inc(cont);
if cont > 15 then
begin
cont := 15;
end;
setfillpattern(fondo[1],10);
bar((xe - 8) + (cont * 8),ye,((xe - 8) + (cont * 8)) + 8,ye + 8);
end;
if valor = 8 then
begin
setfillpattern(fondo[1],1);
bar((xe - 8) + (cont * 8),ye,((xe - 8) + (cont * 8)) + 8,ye + 8);
dec(cont);
if cont < 1 then
begin
cont := 1;
end;
texto[0] := chr(cont);
texto[cont] := ' ';
setfillpattern(fondo[1],1);
bar((xe - 8) + (cont * 8),ye,((xe - 8) + (cont * 8)) + 8,ye + 8);
end;
until (valor = 13) or (valor = 27);
edita_entrada := stringreal(texto);

setfillpattern(fondo[1],1);
bar((xe - 8) + (cont * 8),ye,((xe - 8) + (cont * 8)) + 8,ye + 8);
end;

procedure pantalla_menu;
var
d : integer;
begin
d := 1;
repeat
setcolor(15);
line(1 + d,40 + d,(getmaxx - 8) - d,40 + d);
line(1 + d,40 + d, 1 + d, (getmaxy - 2) - d);
setcolor(7);
line(1 + d,(getmaxy - 2) - d,(getmaxx - 8) - d,(getmaxy - 2) - d);
line((getmaxx - 8) - d, 40 + d,(getmaxx - 8) - d,(getmaxy - 2) - d);
inc(d);
until d = 6;
d := 1;
repeat
setcolor(7);
line(1 + d,1 + d,(getmaxx - 8) - d,1 + d);
line(1 + d,1 + d, 1 + d, 40 - d);
setcolor(15);
line(1 + d,40 - d,(getmaxx - 8) - d,40 - d);
line((getmaxx - 8) - d,1 + d,(getmaxx - 8) - d,40 - d);
inc(d);
until d = 6;
SetFillPattern(Gray, 10);
bar(7,7,(getmaxx - 7) - 7,40 - 7);
SetFillPattern(Gray, 0);
setcolor(15);
end;

procedure initvga(s:string);
Begin
Driver := detect;
InitGraph(Driver,Mode,s);
if graphresult <> 0 then
begin
Writeln('ERROR GRAFICO : ');
Halt(1);
end;
GetFillPattern(OldPattern);
SetFillPattern(Gray, 0);
end;

procedure inicia_graficos;
begin
initvga('c: pgi');
for h := 1 to 17 do
for v := 1 to 16 do
begin
if raton[h][v] = '1' then
begin
putpixel(110 + v,120 + h,7);
end;
if raton[h][v] = '8' then
begin
putpixel(110 + v,120 + h,15);
end;
end;
ocupa := imagesize(110,120,110 + 16, 120 + 17);
activo := false;
if memavail > ocupa then
begin
getmem(cursor,ocupa);
getimage(110,120,110 + 16, 120 + 17,cursor^);
putimage(110,120,cursor^,xorput);
activo := true;
end;
initmouse(1);
pon_posicion_raton(110,120);
xr := posx_raton;
yr := posy_raton;
putimage(xr,yr,cursor^,xorput);
putimage(xr,yr,cursor^,xorput);
end;

begin
inicia_graficos;
putimage(xr,yr,cursor^,xorput);
pantalla_menu;
boton_menu(9,10,146,32,false,1,'Calculo SG3525A');
boton_menu(158,10,295,32,false,1,'Calculo SG3524A');
boton_menu(307,10,444,32,false,1,'Calculo LM494CN');
boton_menu(456,10,603,32,false,1,' SALIR ');
setcolor(133);
outtextxy(150,50,'** CALCULO DE FRECUENCIA DE SALIDA [PWM] **');
setcolor(15);
final := false;
repeat
if (xr <> posx_raton) or (yr <> posy_raton) then
begin
putimage(xr,yr,cursor^,xorput);
xr := posx_raton;
yr := posy_raton;
if xr > getmaxx - 12 then
begin
xr := getmaxx - 12;
end;
if yr > getmaxy - 2 then
begin
yr := getmaxy - 2;
end;
putimage(xr,yr,cursor^,xorput);
end;
if boton_raton = 1 then
begin
putimage(xr,yr,cursor^,xorput);
case yr of
15..29 : begin
case xr of
13..139 : begin
setfillpattern(fondo[1],0);
bar(7,56,getmaxx - 16,getmaxy - 9);
resit1 := 0.0;
resit2 := 0.0;
conden := 0.0;
conden2 := 0.0;
balor1 := 0.0;
balor1 := 0.0;
total := 0.0;
boton_menu(9,10,146,32,true,1,'Calculo SG3525A');
SG3525A(300,60);
boton_menu(140,260,440,284,true,1,'ENTRE VALOR RT :');
boton_menu(140,288,440,312,true,1,'ENTRE VALOR RD :');
boton_menu(140,316,440,340,true,1,'ENTRE VALOR CT :');
setcolor(14);
presentahomio(416,268);
presentahomio(416,296);
outtextxy(464 - 60,324,'nF');
outtextxy(110,345,'Resistencias en y Condensador en Nano Faradio');
presentahomio(231,343);
outtextxy(110,355,'1nF = 0.001uF / 10nF = 0.01uF / 100nF = 0.1uF');
outtextxy(110,365,'1 = 0.001K / 10 = 0.01K / 100 = 0.1K ');
presentahomio(116,363);
presentahomio(197,363);
presentahomio(248,363);
presentahomio(326,363);
presentahomio(382,363);
presentahomio(454,363);
setcolor(10);
outtextxy(110,420,'RESULTADO = Khz');
setcolor(15);
resit1 := edita_entrada(274,268);
setfillpattern(fondo[1],1);
bar(274,268,364 + 8,268 + 8);
setcolor(14);
outtextxy(255,268,realstring2(resit1));
setcolor(15);
resit2 := edita_entrada(274,297);
setfillpattern(fondo[1],1);
bar(274,297,364 + 8,297 + 8);
setcolor(14);
outtextxy(255,297,realstring2(resit2));
setcolor(15);
conden := edita_entrada(274,324);
conden2 := conden * 0.000000001;
setfillpattern(fondo[1],1);
bar(274,324,364 + 8,324 + 8);
setcolor(14);
outtextxy(255,324,realstring2(conden));
setcolor(15);
balor1 := (0.7 * resit1) + (resit2 * 3);
balor2 := balor1 * conden2;
total := 1/balor2;
outtextxy(206,420,realstring2(total/1000));
frecuencia2(total);
boton_menu(9,10,146,32,false,1,'Calculo SG3525A');
end;
162..288 : begin
setfillpattern(fondo[1],0);
bar(7,56,getmaxx - 16,getmaxy - 9);
resit1 := 0.0;
conden := 0.0;
balor1 := 0.0;
total := 0.0;
boton_menu(158,10,295,32,true,1,'Calculo SG3524A');
SG3524A(300,60);
boton_menu(140,260,440,284,true,1,'ENTRE VALOR RT :');
boton_menu(140,288,440,312,true,1,'ENTRE VALOR CT :');
setcolor(14);
outtextxy(408,268,'K');
presentahomio(416,268);
outtextxy(464 - 50,296,'uF');
outtextxy(110,345,'Resistencias en K y Condensador en uF');
outtextxy(110,355,'1nF = 0.001uF / 10nF = 0.01uF / 100nF = 0.1uF');

setcolor(10);
outtextxy(110,420,'RESULTADO = Khz');
setcolor(15);
resit1 := edita_entrada(274,268);
setfillpattern(fondo[1],1);
bar(274,268,364 + 8,268 + 8);
setcolor(14);
outtextxy(255,268,realstring2(resit1));
setcolor(15);
conden := edita_entrada(274,297);
setfillpattern(fondo[1],1);
bar(274,297,364 + 8,297 + 8);
setcolor(14);
outtextxy(255,297,realstring2(conden));
setcolor(15);
balor1 := (resit1 * conden);
total := (1.8/balor1);
outtextxy(206,420,realstring2(total));
frecuencia2(total);
boton_menu(158,10,295,32,false,1,'Calculo SG3524A');
end;
312..439 : begin
setfillpattern(fondo[1],0);
bar(7,56,getmaxx - 16,getmaxy - 9);
resit1 := 0.0;
conden := 0.0;
balor1 := 0.0;
total := 0.0;
boton_menu(307,10,444,32,true,1,'Calculo LM494CN');
LM494CN(300,60);
boton_menu(140,260,440,284,true,1,'ENTRE VALOR RT :');
boton_menu(140,288,440,312,true,1,'ENTRE VALOR CT :');
setcolor(14);
outtextxy(408,268,'K');
presentahomio(416,268);
outtextxy(464 - 50,296,'uF');
outtextxy(110,345,'Resistencias en K y Condensador en uF');
outtextxy(110,355,'1nF = 0.001uF / 10nF = 0.01uF / 100nF = 0.1uF');
presentahomio(245,344);
setcolor(10);
outtextxy(110,420,'RESULTADO = Khz');
setcolor(15);
resit1 := edita_entrada(274,268);
setfillpattern(fondo[1],1);
bar(274,268,364 + 8,268 + 8);
setcolor(14);
outtextxy(255,268,realstring2(resit1));
setcolor(15);
conden := edita_entrada(274,297);
setfillpattern(fondo[1],1);
bar(274,297,364 + 8,297 + 8);
setcolor(14);
outtextxy(255,297,realstring2(conden));
setcolor(15);
balor1 := ((resit1 * 2) * conden);
total := (1/balor1);
outtextxy(206,420,realstring2(total));
frecuencia2(total);
boton_menu(307,10,444,32,false,1,'Calculo LM494CN');
end;
459..598 : begin
boton_menu(456,10,603,32,true,1,' SALIR ');
delay(300);
final := true;
boton_menu(456,10,603,32,false,1,' SALIR ');
end;
end;
end;
end;
putimage(xr,yr,cursor^,xorput);
end;
if keypressed then
pulsada := readkey;
if pulsada <> #27 then
begin
pulsada := #0;
end;
until (final = true) or (pulsada = #27);
closegraph;
end.