Помощь - Поиск - Пользователи - Календарь
Полная версия: Распределение большого кол-ва Записей
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Tan
Написал процедурку которая выводит на экран в виде таблицы записи. Прошу вас помоч дополнить её следующим : необходимо, чтобы, при условии, когда количество записей будет больше 15, программа каждые 15 записей выводила в окне window(1,1,80,25) - {я уже подсчитал, это будут координаты окна если записей будет 15}, и при этом переключаться к следующей порции записей можно только нажав клавишу вправо, а вернуться к предыдущей - влево. Очень нуждаюсь в вашей помощи!!
procedure Content (var fails: MyFile; filename: string);
var i: integer; REC: Option; nos: string;
begin
assign (fail, filename);
{$I-}
reset (fail);
{$I+}
CLRSCR;
TextColor (Blue);
Textbackground(White); Clrscr;
TextColor(black);
repeat
read (fail, REC);
end;
with REC do
begin
textcolor (Black);
writeln (i,' ',PersonName:10,' ',Surname:11 ,' ',Education,:13,' ',Post:20,' ',Experience:5,' ',Payment:7:1);
inc (i);
end;
until eof (fail);
close (fail);
textcolor (black);
textbackground(white);
end;
volvo
Алгоритм примерно такой:

curr_pos := 0;
refresh := true;

repeat

if refresh then begin
seek(fail, curr_pos);
i := 1;
repeat
read (fail, REC);
with REC do begin
textcolor (Black);
writeln (curr_pos + i,' ',PersonName:10,' ',
Surname:11 ,' ',Education,:13,' ',Post:20,' ',Experience:5,' ',Payment:7:1);
inc (i);
end;
until (i > 15) or (eof (fail));
refresh := false;

end;

case readkey of
{ клавиша "вправо" }
if curr_pos + 15 < filesize(fail) then begin
inc(curr_pos, 15); refresh := true;
end;
{ клавиша "влево" }
if curr_pos - 15 >= 0 then begin
dec(curr_pos, 15); refresh := true;
end;
{ кнопка "Escape" }
break;
end;

until false;


Присоединишь программу - скажу точнее, как реализовать это...
Tan
спасибо, сейчас попробую это осмыслить, если остануться вопросы, то выложу код.
Tan
С алгоритмом всё понятно, он даёт даже больше, чем я хотел. Небольшое уточнение : если я использую модули Dos и CRT то главное окощко (то есть весь экран) и будет (1,1,80,25) ? Так как на мой взгляд вопрос касается основного в этой теме, то новую я не стал создавать.
volvo
Вообще-то лучше определять размеры окна в зависимости от того режима, который ты используешь... Например, количество столбцов хранится в байте по адресу: $0:$044A

Если ты уверен, что используется режим именно с 25 строками, а не с 43 или 50, то можно назначить окно и вручную, именно через
Window(1, 1, 80, 25);
buy azithromycin or ceftriaxone
Cheap Seroquel No Prescription
purchase hydroxychloroquine sulf
Clomid Acide Folique Je
promethazine without prescriptio
Buy Kamagra Fast Delivery
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.