Форум «Всё о Паскале» _ Free Pascal, Pascal ABC и другие _ оболочка к write()
Автор: compiler 6.01.2008 2:02
Добрый день! Меня интересует следующий вопрос, можна ли создать оболочку к write? Допустим я хочу писать в определенное место на терменале, но все это спрятатьв отдельную процедуру... Честно говоря, учитывая то что я знаю о write, я сомневаюсь что это реализуемо, но, может...
заранее благодарен.
Автор: klem4 6.01.2008 2:15
Цитата
в определенное место на терменале
что ты имеешь в виду ? Определенное место на экране ? Для это есть gotoXY.
Автор: compiler 6.01.2008 2:20
Цитата(klem4 @ 5.01.2008 21:15)
что ты имеешь в виду ? Определенное место на экране ? Для это есть gotoXY.
да, но допустим я хочу написать как то так
x:=wherex(); y:=wherey(); gotoxy(20,20); write(s); //выводим s gotoxy(x, y);
и каждый раз такое творить не очень та и хочеться....
Автор: klem4 6.01.2008 2:35
ну и в чем трабл ?)
uses crt;
procedure write_and_return(const msg: String; const x, y: Word); var return_x, return_y: Word; begin return_x := WhereX; return_y := WhereY;
Что, только переменные одного типа печатаются обычно?
compiler, смотри в сторону Format + array of const
Автор: compiler 6.01.2008 3:40
klem4, прости что ввел в заблуждение названием переменной..
Цитата(volvo @ 5.01.2008 22:07)
compiler, смотри в сторону Format + array of const
тоесть? как их тут использовать? может стоит передавать указатель на то что печатаем и переменную перечасляемого типа в которой будет тип, вот... например, wr(my_point, integer, x, y);, а затем как то это обрабатывать...
Автор: volvo 6.01.2008 3:52
uses sysutils, crt;
procedure write(px, py: integer; s: string; arrX: array of const); var x, y: integer; begin x := wherex(); y := wherey(); gotoxy(px, py); system.write(format(s, arrX)); gotoxy(x, y); end;
Можешь не переопределять Write, а дать другое имя процедуре...
Автор: compiler 6.01.2008 4:02
Спасибо, то что надо!
system.write(format(s, arrX));
o_O, а можна комментарий?
1)обращение к system. надо для того что бы обратиться к нужной write? 2)что делает format?
Автор: volvo 6.01.2008 4:40
Цитата
обращение к system. надо для того что бы обратиться к нужной write?
Если не будет system. - то компилятор посчитает вызов Write рекурсивным, и просто скажет, что не хватает параметров...
Цитата
что делает format?
Форматирует строку по шаблону, переданному первым параметром (printf-ом в Сях пользовался? Что-то очень похожее): http://freepascal.org/docs-html/rtl/sysutils/format.html