-
в консоли после очистки экрана курсор не возвращается в исходное положение и далее не пишет заданный текст
-
нужен пример демострирующий проблему/ошибку
-
program manager; uses CRT4COL, Windows; var name: array of string[18]; kol: array of integer; sum, cost, prem, i, k, n: intege progprem: integer; begin writeln(UTF8ToConsole('Введите количество менеджеров')); readln(n); SetLength(name, n); SetLength(kol, n); for k:= 0 to n - 1 do begin writeln(UTF8ToConsole('Введите фамилию')); readln(name[k]); writeln(UTF8ToConsole('Введите количество компьютеров')); readln(kol[k]); end;
Cls; // после этого не работает
GoToXY(6,1); write(UTF8ToConsole('Сведения о реализации компьютеров')); GoToXY(14,2); write(UTF8ToConsole('за январь 2010 г.')); GoToXY(1,3); write('------------------------------------------------'); GoToXY(1,4); write(UTF8ToConsole('Фамилия Количество Выручка Премия')); GoToXY(1,5); write('------------------------------------------------'); cost:= 1000; progprem:= 25; for k:= 0 to n - 1 do begin sum:= cost * kol[k]; prem:= progprem * kol[k]; writeln; writeln(name[k]); GoToXY(24, k + 6); write(kol[k]); GoToXY(32, k + 6); write(sum); GoToXY(40, k + 6); write(prem); end; sum:= 0; i:= 0; for k:= 0 to n - 1 do begin i:= i + kol[k]; sum:= i * cost; {Сумма выручки} prem:=i * progprem;
end; GoToXY(1, n + 6); write('------------------------------------------------'); GoToXY(17, n + 7); writeln(UTF8ToConsole('Итого:')); GoToXY(24, n + 7); write(i); GoToXY(32, n + 7); write(sum); GoToXY(40, n + 7); write(prem); GoToXY(1, n + 9); write(UTF8ToConsole('Нажмите любую клавишу')); inputc; end
-
Вот примерно так program manager;
uses
kol,
Windows,
CRT4KOL in 'CRT4KOL.pas';
function StrAnsiToOem(aStr : String) : String;
begin
Result := '';
if Length(aStr) > 0 then begin
SetLength(Result, Length(aStr));
CharToOem(PChar(aStr), PChar(Result));
end;
end;
var
name: array of string[18];
kol: array of integer;
sum, cost, prem, i, k, n: integer;
progprem: integer;
s:string;
W: PWindow;
begin
W := NewWindow( nil, 11, 12, 22, 6, colorBlue );
W.FrameStyle := fsDouble;
W.Active := TRUE;
foreground( colorCyan or colorLight );
outs(StrAnsiToOem( 'Введите количество менеджеров')+#13#10);
readln(n);
writeln;
SetLength(name, n);
SetLength(kol, n);
for k:= 0 to n - 1 do
begin
outs(StrAnsiToOem( 'Введите фамилию')+#13#10);
background( colorGreen );
readln(name[k]);
background( 0 );
outs(StrAnsiToOem('Введите количество компьютеров')+#13#10);
readln(kol[k]);
writeln;
end;
background( 0);
Cls;
GoToXY(6,1);
foreground( colorYellow or colorLight );
outs(StrAnsiToOem( 'Сведения о реализации компьютеров')+#13#10);
GoToXY(14,2);
outs(StrAnsiToOem('за январь 2010 г.')+#13#10);
GoToXY(1,3);
outs('------------------------------------------------');
GoToXY(1,4);
outs(StrAnsiToOem('Фамилия Количество Выручка Премия')+#13#10);
GoToXY(1,5);
outs('------------------------------------------------');
cost:= 1000;
progprem:= 25;
for k:= 0 to n - 1 do
begin
sum:= cost * kol[k];
prem:= progprem * kol[k];
writeln;
outs(name[k]);
GoToXY(24, k + 6);
outs(int2str(kol[k]));
GoToXY(32, k + 6);
outs(int2str(sum));
GoToXY(40, k + 6);
outs(int2str(prem));
end;
sum:= 0;
i:= 0;
for k:= 0 to n - 1 do
begin
i:= i + kol[k];
sum:= i * cost;
prem:=i * progprem;
end;
GoToXY(1, n + 6);
outs('------------------------------------------------');
GoToXY(17, n + 7);
outs(StrAnsiToOem('Итого:'));
GoToXY(24, n + 7);
outs(int2str(i));
GoToXY(32, n + 7);
outs(int2str(sum));
GoToXY(40, n + 7);
outs(int2str(prem));
GoToXY(1, n + 9);
write(StrAnsiToOem('Нажмите любую клавишу') );
outs(StrAnsiToOem('Нажмите любую клавишу'));
inputc;
end.
-
СПАСИБО ОГРОМНОЕ, будем ковырять)
-
снова проблема: +#13#10 не срабатывает перевод каретки курсора
|