Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Formating in Turbo Vision

Автор: FX 7.06.2007 0:08

Помогите пожалуйста с одной маленькой (для меня) проблемой...
Мне нужно вывести записи на эран, где элементы "god" и "cena" должны выводится не с левого края а с правого своей области.
Элементы все string.
Знаю как в числовых элементах делается:
god,'':(11-length(god))
а с символьными не могу разобратся...


cena:string[8];
god:string[11];


Procedure TInterior.ReadFile;
var k:integer;
s,shapka:String;
data:autopark;
t:text;
begin
PS:=New(PStringCollection,Init(100,10));
seek(f,0);
shapka:=' Название | Марка | Год | Кузов | цвет | цена  ';
PS^.insert(NewStr(shapka));
while not (EOF(f) or LowMemory) do
begin
read(f,data);
with data do
begin
s:=nazvanie;
while Length(s)<Lnazvanie do s:=s+' ';
s:=s+marka;
while Length(s)<Lnazvanie+Lmarka do s:=s+' ';
s:=s+god;
while Length(s)<Lnazvanie+Lmarka+Lgod do s:=s+' ';
s:=s+kuzov;
while Length(s)<Lnazvanie+Lmarka+Lgod+Lkuzov do s:=s+' ';
s:=s+cvet;
while Length(s)<Lnazvanie+Lmarka+Lgod+Lkuzov+Lcvet do s:=s+' ';
s:=s+cena;
end;
if s<>' ' then PS^.Insert(NewStr(S));
end;
Location:=0;
end;


Автор: Ozzя 7.06.2007 12:33

GotoXY(80-Length(stroka),y);

Автор: FX 7.06.2007 19:08

Ага...и куда его прописывать прикажите? Пробывал, но ниче не передвигает!

Автор: volvo 7.06.2007 21:49

Цитата
Ага...и куда его прописывать прикажите?
А ты что, показал где-то как ты вообще выводишь что-то на экран? Или ты хочешь форматировать строку в памяти?

Автор: FX 9.06.2007 0:12

Выводится она у меня так:
Название | Марка | Год | Кузов | Цвет | Цена
Опель Омега 1995 Седан Белый 8000

А нужно чтоб было так:
Название | Марка | Год | Кузов | Цвет | Цена
Опель Омега 1995 Седан Белый 8000

Автор: Гость 9.06.2007 0:13

Ой, плохо получилось...

Автор: Гость 9.06.2007 0:13

Ой, плохо получилось...

Автор: FX 9.06.2007 0:15

Выводится она у меня так:
Название..|..Марка..|....Год....|..Кузов..|..Цвет...|..Цена
Опель........Омега.....1995........Седан.....Белый...8000

А нужно чтоб было так:
Название | Марка | Год | Кузов | Цвет | Цена
Опель........Омега............1995.Седан.....Белый......8000

Автор: FX 9.06.2007 0:18

Да что такое! wacko.gif


Выводится она у меня так:
Название..|..Марка..|....Год....|..Кузов..|..Цвет...|..Цена
Опель........Омега.....1995........Седан.....Белый...8000

А нужно чтоб было так:
Название..|..Марка..|....Год....|..Кузов..|..Цвет...|..Цена
Опель........Омега............1995.Седан.....Белый......8000

Автор: Ozzя 9.06.2007 11:17

Нет, тебя спрашивают КАК ты выводишь на экран данные - средствами ТВ или просто write(ln).

Автор: FX 9.06.2007 14:13

Средствами ТВ!

Автор: Ozzя 9.06.2007 14:22


var
R : TRect;
Stroka: String;
...
R.Assign(1,1,79-Length(stroka),1);
Insert(New(PStaticText,Init(R,Stroka)));
...


Автор: FX 10.06.2007 16:40


Извиняюсь за назойливость но я в ТВ не очень шарю, не могли б мне тыкнуть пальцем где это вообще прописывать! Прописал в процедуре (см. выше) - выдает ошибку...

Автор: Ozzя 11.06.2007 16:30

У меня здесь все вставляется в диалог, например:

PTestWin =^TTestWin;
TTestWin = object (TDialog)
Procedure HandleEvent(var Event: TEvent); Virtual;
Procedure Draw; Virtual;
end;

var
d:TestWin;
Далее идет вышеозначенный код
и затем
q:=DeskTop^.ExecView(d);

Но рекомендую почитать книжку по ТВ.




Прикрепленные файлы
Прикрепленный файл  _________TURBO_VISION.ZIP ( 238.54 килобайт ) Кол-во скачиваний: 143

Автор: Гость 12.06.2007 13:56

OK! Спасибо!